/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.colegiatura.beans;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.faces.application.FacesMessage;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import org.apache.myfaces.custom.fileupload.UploadedFile;
import org.cip.esymons.colegiatura.adapters.RutaCarpetaReporte;
import org.cip.esymons.colegiatura.bc.ColegiadoDelegate;
import org.cip.esymons.colegiatura.bc.ColegiadoDeporteDelegate;
import org.cip.esymons.colegiatura.bc.ColegiadoEspecialidadDelegate;
import org.cip.esymons.colegiatura.bc.ColegiadoImagenDelegate;
import org.cip.esymons.colegiatura.bc.DepartamentoDelegate;
import org.cip.esymons.colegiatura.bc.DetalleGuiaDelegate;
import org.cip.esymons.colegiatura.bc.DireccionDelegate;
import org.cip.esymons.colegiatura.bc.DirectivosDelegate;
import org.cip.esymons.colegiatura.bc.EscuelaDelegate;
import org.cip.esymons.colegiatura.bc.EspCapDelegate;
import org.cip.esymons.colegiatura.bc.EspecialidadDelegate;
import org.cip.esymons.colegiatura.bc.EstudioColegiadoDelegate;
import org.cip.esymons.colegiatura.bc.ExperienciaLaboralDelegate;
import org.cip.esymons.colegiatura.bc.FacultadDelegate;
import org.cip.esymons.colegiatura.bc.FormacionProfesionalDelegate;
import org.cip.esymons.colegiatura.bc.GeneraCuotasDelegate;
import org.cip.esymons.colegiatura.bc.GuiaRemisionDelegate;
import org.cip.esymons.colegiatura.bc.PersonaJuridicaDelegate;
import org.cip.esymons.colegiatura.bc.PersonaNaturalDelegate;
import org.cip.esymons.colegiatura.bc.PreInscripcionDelegate;
import org.cip.esymons.colegiatura.bc.ProvinciaDelegate;
import org.cip.esymons.colegiatura.bc.TelefonoDelegate;
import org.cip.esymons.colegiatura.bc.UniversidadDelegate;
import org.cip.esymons.colegiatura.bc.VinculoColegiadoDelegate;
import org.cip.esymons.colegiatura.bc.solicitanteDelegate;
import org.cip.esymons.colegiatura.be.Colegiado;
import org.cip.esymons.colegiatura.be.ColegiadoDeporte;
import org.cip.esymons.colegiatura.be.ColegiadoImagen;
import org.cip.esymons.colegiatura.be.Deporte;
import org.cip.esymons.colegiatura.be.DetalleGuia;
import org.cip.esymons.colegiatura.be.EstudioColegiado;
import org.cip.esymons.colegiatura.be.ExperienciaLaboral;
import org.cip.esymons.colegiatura.be.FormacionProfesional;
import org.cip.esymons.colegiatura.be.GuiaRemision;
import org.cip.esymons.colegiatura.be.Preinscripcion;
import org.cip.esymons.colegiatura.be.VinculoColegiado;
import org.cip.esymons.general.be.Capitulo;
import org.cip.esymons.general.be.ColegiadoEspecialidad;
import org.cip.esymons.general.be.Departamento;
import org.cip.esymons.general.be.DireccionPersona;
import org.cip.esymons.general.be.Distrito;

import org.cip.esymons.general.be.Escuela;
import org.cip.esymons.general.be.EspecialidadCapitulo;
import org.cip.esymons.general.be.Facultad;
import org.cip.esymons.general.be.PersonaJuridica;
import org.cip.esymons.general.be.PersonaNatural;
import org.cip.esymons.general.be.Provincia;
import org.cip.esymons.general.be.TelefonoSolicitante;
import org.cip.esymons.general.be.Universidad;
import org.cip.esymons.general.util.ControladorAbstracto;
import org.cip.esymons.general.util.EnviaEmail;
import org.cip.esymons.general.util.FormatoExportacion;
import org.cip.esymons.general.util.Reporteador;

/**
 *
 * @author ADMINISTRADOR
 */
public class reportesController {

    private PreInscripcionDelegate delegadoPreInscripcion;
    private ColegiadoDelegate delegadoColegiado;
    private ColegiadoDeporteDelegate delegadoDeporte;
    private DireccionDelegate delegadoDireccion;
    private FormacionProfesionalDelegate delegadoFormacion;
    private TelefonoDelegate delegadoTelefono;
    private VinculoColegiadoDelegate delegadoFamiliar;
    private ExperienciaLaboralDelegate delegadoExperiencia;
    private ColegiadoEspecialidadDelegate delegadoColESp;
    private EstudioColegiadoDelegate delegadoEstudioColegiado;
    private ProvinciaDelegate delegadoProvincia;
    private DepartamentoDelegate delegadoDpto;
    private EscuelaDelegate delegadoEscuela;
    private FacultadDelegate delegadoFacultad;
    private UniversidadDelegate delegadoUniversidad;
    private PersonaJuridicaDelegate delegadoJuridico;
    private EspCapDelegate delegadoEspCap;
    private PersonaNaturalDelegate delegadoNatural;
    private ColegiadoImagenDelegate delegadoColImagen;
    private EspecialidadDelegate delegadoEspecialidad;
    private solicitanteDelegate delegadoSolicitante;
    private DirectivosDelegate delegadoDirectivos;
    private DetalleGuiaDelegate delegadoDetalleGuia;
    private GuiaRemisionDelegate delegadoGuiaRemision;
    private GeneraCuotasDelegate delegadoCuotas;

    private Preinscripcion preInscripcion;
    private Colegiado colegiado;
    private ColegiadoDeporte colDeporte;
    private DireccionPersona direccion,direccionEmp;
    private FormacionProfesional formProf;
    private TelefonoSolicitante telefono,telefonoEmp;
    private VinculoColegiado familiares;
    private ExperienciaLaboral expLaboral;
    private ColegiadoEspecialidad colEspecialidad;
    private EstudioColegiado estudioColegiado;
    private Provincia provincia,provEmp;
    private Departamento dpto;
    private Distrito distrito;
 
    private PersonaJuridica perJuridica;
    private EspecialidadCapitulo espCap;
    private PersonaNatural perNatural;
    private ColegiadoImagen colImagen,colFoto,colFirma;
   
    private Escuela escuela;
    private Facultad facultad;
    private Universidad universidad;

    private Date fechaIni, fechaFin,ini,fin;
    private Date fecha1, fecha2;
    private String rangoFechas;
    private List lista;
    private String codigoCIP;
    private String estadoCivil;
    private String dni;
    private Deporte deporte;
    private Long codigo;
    private List<Colegiado> listaCol;
    private List<Preinscripcion> listaPreIncritos;
    private List<Preinscripcion> listaColPre;

    private String tabber ;
    private String apePat,apeMat, nombre,ruc;
    private boolean soloColegiados;
    List<PersonaNatural> listaPersonas;
    List<PersonaNatural> listaPersonasFotos;
    private PersonaNatural persona;

    private Capitulo capitulo;
    private List<ColegiadoEspecialidad> listaColPorCapitulo;

    private Integer seleccion,selecFecha,combo1,combo2;
    private List<Colegiado> listaColegiadoDeCumple;
    private List<Colegiado> listaOrdinarios;
    private List<Colegiado> listaColegiadosVitalicios;
    private List<Colegiado> listaColegiadosFallecidos;
    private List<Colegiado> listaColegiadosTransferidos;
    private List<Colegiado> listaColegiadosTemporales;
    private List<Colegiado> listaColegiadosExternos;
    private List<ColegiadoEspecialidad> listaColegiadoEspecialidad;
    private List<ColegiadoImagen> listaSellos;
    private List<ColegiadoImagen> listaDocColegiado;
    private List<ColegiadoDeporte> listaDep;
    private List<ColegiadoDeporte> listaDeportes;
    private List<Distrito> listaDistritosFiltrados;
    private int mes;

    List<TelefonoSolicitante> listaTelefonosColegiado;
    List<ExperienciaLaboral> listaExpLaboral;
    List<EstudioColegiado> listaEstudiosColegiado;
    List<VinculoColegiado> listaVinculosColegiado;
    List<ColegiadoDeporte> listaDeportesColegiado;
    List<Preinscripcion> guiaPreinscrito;
    List<Colegiado> listaPreColegiado;
    List<DetalleGuia> listaDetalleGuia;
    List<Preinscripcion> listaPre;
    private DetalleGuia detalleGuia;
    private GuiaRemision guiaRemision;

    List<DireccionPersona> listaDirecciones;
    List<Colegiado> listaColegiados;
    List<Colegiado> listaColegiadosFechas;
    DireccionPersona direccionCol;
    private String origen,destino,asunto,contenido,exito;
    private String nroSello;
    private Boolean verImagen;
    private Boolean condicion;
    private boolean aprobado;
    private Integer rango;
    private Boolean activo;
    private Boolean d1,d2,d3,d4,d5,d6,d7,d8;
    private Integer cantidad;
    private String nro,interior,piso,depto,mz,lote,etapa,sector;
    private Boolean noHallado,muestra,habilitado,oculto;

     
    public reportesController() {

        delegadoPreInscripcion = new PreInscripcionDelegate();
        delegadoColegiado = new ColegiadoDelegate();
        delegadoDeporte = new ColegiadoDeporteDelegate();
        delegadoDireccion = new DireccionDelegate();
        delegadoFormacion = new FormacionProfesionalDelegate();
        delegadoTelefono = new TelefonoDelegate();
        delegadoFamiliar = new VinculoColegiadoDelegate();
        delegadoExperiencia = new ExperienciaLaboralDelegate();
        delegadoColESp = new ColegiadoEspecialidadDelegate();
        delegadoEstudioColegiado = new EstudioColegiadoDelegate();
        delegadoProvincia = new ProvinciaDelegate();
        delegadoDpto = new DepartamentoDelegate();
        delegadoEscuela = new EscuelaDelegate();
        delegadoFacultad = new FacultadDelegate();
        delegadoUniversidad = new UniversidadDelegate();
        delegadoJuridico = new PersonaJuridicaDelegate();
        delegadoEspCap = new EspCapDelegate();
        delegadoNatural = new PersonaNaturalDelegate();
        delegadoColImagen = new ColegiadoImagenDelegate();
        delegadoEspecialidad = new EspecialidadDelegate();
        delegadoSolicitante = new solicitanteDelegate();
        delegadoDirectivos = new DirectivosDelegate();
        delegadoDetalleGuia = new DetalleGuiaDelegate();
        delegadoGuiaRemision = new GuiaRemisionDelegate();
        delegadoCuotas = new GeneraCuotasDelegate();

        preInscripcion = new Preinscripcion();
        colegiado = new Colegiado();
        colDeporte = new ColegiadoDeporte();
        direccion = new DireccionPersona();
        formProf = new FormacionProfesional();
        telefono = new TelefonoSolicitante();
        familiares = new VinculoColegiado();
        expLaboral = new ExperienciaLaboral();
        colEspecialidad = new ColegiadoEspecialidad();
        estudioColegiado = new EstudioColegiado();
        provEmp = new Provincia();
        provincia = new Provincia();
        dpto = new Departamento();       
        distrito = new Distrito();      
        direccionEmp = new DireccionPersona();
        telefonoEmp = new TelefonoSolicitante();
        perJuridica = new PersonaJuridica();
        espCap = new EspecialidadCapitulo();
        perNatural = new PersonaNatural();
        colImagen = new ColegiadoImagen();
        colFoto = new ColegiadoImagen();
        colFirma = new ColegiadoImagen();
        
        listaColPorCapitulo = new ArrayList<ColegiadoEspecialidad>();
        listaColPorCapitulo = null;

        escuela = new Escuela();
        facultad = new Facultad();
        universidad = new Universidad();

        estadoCivil = null;
        deporte= new Deporte();

        bandera = false;
        capitulo = new Capitulo();

        listaOrdinarios= new ArrayList<Colegiado>();
        listaOrdinarios = null;
        listaPre = new ArrayList<Preinscripcion>();
        listaPre = null;
        listaColPre = new ArrayList<Preinscripcion>();
        listaColegiadoDeCumple = new ArrayList<Colegiado>();
        listaColegiadoDeCumple = null;

        guiaPreinscrito = new ArrayList<Preinscripcion>();
        listaPreColegiado = new ArrayList<Colegiado>();
        listaDetalleGuia = new ArrayList<DetalleGuia>();
        detalleGuia = new DetalleGuia();
        guiaRemision = new GuiaRemision();
        listaPersonasFotos = new ArrayList<PersonaNatural>();
        listaPersonasFotos = null;

        mensaje = false;
        activar = false;

        listaDirecciones = new ArrayList<DireccionPersona>();
        listaDirecciones = null;
        listaColegiados = new ArrayList<Colegiado>();
        listaColegiados = null;
        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadosFechas = null;
        direccionCol = new DireccionPersona();
        listaColegiadosVitalicios = new ArrayList<Colegiado>();
        listaColegiadosVitalicios = null;
        listaColegiadosFallecidos = new ArrayList<Colegiado>();
        listaColegiadosFallecidos = null;
        listaColegiadosTransferidos = new ArrayList<Colegiado>();
        listaColegiadosTransferidos = null;
        listaColegiadosTemporales = new ArrayList<Colegiado>();
        listaColegiadosTemporales = null;
        listaColegiadosExternos = new ArrayList<Colegiado>();
        listaColegiadosExternos = null;
        listaColegiadoEspecialidad = new ArrayList<ColegiadoEspecialidad>();
        listaColegiadoEspecialidad = null;
        listaSellos = new ArrayList<ColegiadoImagen>();
        listaDocColegiado = new ArrayList<ColegiadoImagen>();
        listaDep = new ArrayList<ColegiadoDeporte>();
        listaDeportes = new ArrayList<ColegiadoDeporte>();
        listaDeportes = null;
        ListarColUniv = null;

        listaDistritosFiltrados = new ArrayList<Distrito>();        

        dirImagen = "/modulos/colegiatura/archivos/";
//        dirImagen ="D:\\Archivos\\"; // ruta windows
        verImagen = false;
        aprobado = false;
        activo = null;
        d1 = false; d2 = false; d3 = false; d4 = false;
        d5 = false; d6 = false; d7 = false; d8 = false;

        listaTelefonosColegiado = new ArrayList<TelefonoSolicitante>();
        listaExpLaboral = new ArrayList<ExperienciaLaboral>();
        listaEstudiosColegiado = new ArrayList<EstudioColegiado>();
        listaVinculosColegiado = new ArrayList<VinculoColegiado>();
        listaDeportesColegiado = new ArrayList<ColegiadoDeporte>();
        noHallado = false;
        condicion = null;
        muestra = false;
        habilitado = null;
        oculto = false;
    }

    public Boolean getOculto() {
        return oculto;
    }

    public void setOculto(Boolean oculto) {
        this.oculto = oculto;
    }

    public Boolean getHabilitado() {
        return habilitado;
    }

    public void setHabilitado(Boolean habilitado) {
        this.habilitado = habilitado;
    }

    public Boolean getMuestra() {
        return muestra;
    }

    public void setMuestra(Boolean muestra) {
        this.muestra = muestra;
    }

    public List<DireccionPersona> getListaDirecciones() {
        return listaDirecciones;
    }

    public void setListaDirecciones(List<DireccionPersona> listaDirecciones) {
        this.listaDirecciones = listaDirecciones;
    }
    public List<Distrito> getListaDistritosFiltrados() {
        return listaDistritosFiltrados;
    }

    public void setListaDistritosFiltrados(List<Distrito> listaDistritosFiltrados) {
        this.listaDistritosFiltrados = listaDistritosFiltrados;
    }

    public Distrito getDistrito() {
        return distrito;
    }

    public void setDistrito(Distrito distrito) {
        this.distrito = distrito;
    }

    public Boolean getCondicion() {
        return condicion;
    }

    public void setCondicion(Boolean condicion) {
        this.condicion = condicion;
    }

    public List<Colegiado> getListaColegiadoDeCumple() {
        return listaColegiadoDeCumple;
    }

    public void setListaColegiadoDeCumple(List<Colegiado> listaColegiadoDeCumple) {
        this.listaColegiadoDeCumple = listaColegiadoDeCumple;
    }

    public int getMes() {
        return mes;
    }

    public void setMes(int mes) {
        this.mes = mes;
    }

    public GeneraCuotasDelegate getDelegadoCuotas() {
        return delegadoCuotas;
    }

    public void setDelegadoCuotas(GeneraCuotasDelegate delegadoCuotas) {
        this.delegadoCuotas = delegadoCuotas;
    }

    public Boolean getNoHallado() {
        return noHallado;
    }

    public void setNoHallado(Boolean noHallado) {
        this.noHallado = noHallado;
    }

    public List<ColegiadoDeporte> getListaDeportesColegiado() {
        return listaDeportesColegiado;
    }

    public void setListaDeportesColegiado(List<ColegiadoDeporte> listaDeportesColegiado) {
        this.listaDeportesColegiado = listaDeportesColegiado;
    }

    public List<EstudioColegiado> getListaEstudiosColegiado() {
        return listaEstudiosColegiado;
    }

    public void setListaEstudiosColegiado(List<EstudioColegiado> listaEstudiosColegiado) {
        this.listaEstudiosColegiado = listaEstudiosColegiado;
    }

    public List<ExperienciaLaboral> getListaExpLaboral() {
        return listaExpLaboral;
    }

    public void setListaExpLaboral(List<ExperienciaLaboral> listaExpLaboral) {
        this.listaExpLaboral = listaExpLaboral;
    }

    public List<TelefonoSolicitante> getListaTelefonosColegiado() {
        return listaTelefonosColegiado;
    }

    public void setListaTelefonosColegiado(List<TelefonoSolicitante> listaTelefonosColegiado) {
        this.listaTelefonosColegiado = listaTelefonosColegiado;
    }

    public List<VinculoColegiado> getListaVinculosColegiado() {
        return listaVinculosColegiado;
    }

    public void setListaVinculosColegiado(List<VinculoColegiado> listaVinculosColegiado) {
        this.listaVinculosColegiado = listaVinculosColegiado;
    }

    public List<ColegiadoDeporte> getListaDeportes() {
        return listaDeportes;
    }

    public void setListaDeportes(List<ColegiadoDeporte> listaDeportes) {
        this.listaDeportes = listaDeportes;
    }

    public List<ColegiadoDeporte> getListaDep() {
        return listaDep;
    }

    public void setListaDep(List<ColegiadoDeporte> listaDep) {
        this.listaDep = listaDep;
    }

    public String getDepto() {
        return depto;
    }

    public void setDepto(String depto) {
        this.depto = depto;
    }

    public String getEtapa() {
        return etapa;
    }

    public void setEtapa(String etapa) {
        this.etapa = etapa;
    }

    public String getInterior() {
        return interior;
    }

    public void setInterior(String interior) {
        this.interior = interior;
    }

    public String getLote() {
        return lote;
    }

    public void setLote(String lote) {
        this.lote = lote;
    }

    public String getMz() {
        return mz;
    }

    public void setMz(String mz) {
        this.mz = mz;
    }

    public String getPiso() {
        return piso;
    }

    public void setPiso(String piso) {
        this.piso = piso;
    }

    public String getSector() {
        return sector;
    }

    public void setSector(String sector) {
        this.sector = sector;
    }

    public String getNro() {
        return nro;
    }

    public void setNro(String nro) {
        this.nro = nro;
    }

    public Integer getCantidad() {
        return cantidad;
    }

    public void setCantidad(Integer cantidad) {
        this.cantidad = cantidad;
    }

    public Boolean getD1() {
        return d1;
    }

    public void setD1(Boolean d1) {
        this.d1 = d1;
    }

    public Boolean getD2() {
        return d2;
    }

    public void setD2(Boolean d2) {
        this.d2 = d2;
    }

    public Boolean getD3() {
        return d3;
    }

    public void setD3(Boolean d3) {
        this.d3 = d3;
    }

    public Boolean getD4() {
        return d4;
    }

    public void setD4(Boolean d4) {
        this.d4 = d4;
    }

    public Boolean getD5() {
        return d5;
    }

    public void setD5(Boolean d5) {
        this.d5 = d5;
    }

    public Boolean getD6() {
        return d6;
    }

    public void setD6(Boolean d6) {
        this.d6 = d6;
    }

    public Boolean getD7() {
        return d7;
    }

    public void setD7(Boolean d7) {
        this.d7 = d7;
    }

    public Boolean getD8() {
        return d8;
    }

    public void setD8(Boolean d8) {
        this.d8 = d8;
    }

    public Boolean getActivo() {
        return activo;
    }

    public void setActivo(Boolean activo) {
        this.activo = activo;
    }

    public Integer getRango() {
        return rango;
    }

    public void setRango(Integer rango) {
        this.rango = rango;
    }

    public boolean getAprobado() {
        return aprobado;
    }

    public void setAprobado(boolean aprobado) {
        this.aprobado = aprobado;
    }

    public Boolean getVerImagen() {
        return verImagen;
    }

    public void setVerImagen(Boolean verImagen) {
        this.verImagen = verImagen;
    }

    public List<ColegiadoImagen> getListaDocColegiado() {
        return listaDocColegiado;
    }

    public void setListaDocColegiado(List<ColegiadoImagen> listaDocColegiado) {
        this.listaDocColegiado = listaDocColegiado;
    }

    public String getNroSello() {
        return nroSello;
    }

    public void setNroSello(String nroSello) {
        this.nroSello = nroSello;
    }

    public List<PersonaNatural> getListaPersonasFotos() {
        return listaPersonasFotos;
    }

    public void setListaPersonasFotos(List<PersonaNatural> listaPersonasFotos) {
        this.listaPersonasFotos = listaPersonasFotos;
    }


    public List<ColegiadoImagen> getListaSellos() {
        return listaSellos;
    }

    public void setListaSellos(List<ColegiadoImagen> listaSellos) {
        this.listaSellos = listaSellos;
    }

    public String getContenido() {
        return contenido;
    }

    public void setContenido(String contenido) {
        this.contenido = contenido;
    }

    public String getAsunto() {
        return asunto;
    }

    public void setAsunto(String asunto) {
        this.asunto = asunto;
    }

    public String getDestino() {
        return destino;
    }

    public void setDestino(String destino) {
        this.destino = destino;
    }

    public String getExito() {
        return exito;
    }

    public void setExito(String exito) {
        this.exito = exito;
    }

    public String getOrigen() {
        return origen;
    }

    public void setOrigen(String origen) {
        this.origen = origen;
    }

    public List<ColegiadoEspecialidad> getListaColegiadoEspecialidad() {
        return listaColegiadoEspecialidad;
    }

    public void setListaColegiadoEspecialidad(List<ColegiadoEspecialidad> listaColegiadoEspecialidad) {
        this.listaColegiadoEspecialidad = listaColegiadoEspecialidad;
    }

    public List<Colegiado> getListaColegiados() {
        return listaColegiados;
    }

    public void setListaColegiados(List<Colegiado> listaColegiados) {
        this.listaColegiados = listaColegiados;
    }
    
    public Integer getCombo2() {
        return combo2;
    }

    public void setCombo2(Integer combo2) {
        this.combo2 = combo2;
    }

    public Integer getCombo1() {
        return combo1;
    }

    public void setCombo1(Integer combo1) {
        this.combo1 = combo1;
    }

    public List<Colegiado> getListaColegiadosExternos() {
        return listaColegiadosExternos;
    }

    public void setListaColegiadosExternos(List<Colegiado> listaColegiadosExternos) {
        this.listaColegiadosExternos = listaColegiadosExternos;
    }

    public List<Colegiado> getListaColegiadosTemporales() {
        return listaColegiadosTemporales;
    }

    public void setListaColegiadosTemporales(List<Colegiado> listaColegiadosTemporales) {
        this.listaColegiadosTemporales = listaColegiadosTemporales;
    }

    public List<Colegiado> getListaColegiadosTransferidos() {
        return listaColegiadosTransferidos;
    }

    public void setListaColegiadosTransferidos(List<Colegiado> listaColegiadosTransferidos) {
        this.listaColegiadosTransferidos = listaColegiadosTransferidos;
    }

    public List<Colegiado> getListaColegiadosFechas() {
        return listaColegiadosFechas;
    }

    public void setListaColegiadosFechas(List<Colegiado> listaColegiadosFechas) {
        this.listaColegiadosFechas = listaColegiadosFechas;
    }

    public Integer getSelecFecha() {
        return selecFecha;
    }

    public void setSelecFecha(Integer selecFecha) {
        this.selecFecha = selecFecha;
    }

    public List<Colegiado> getListaColegiadosFallecidos() {
        return listaColegiadosFallecidos;
    }

    public void setListaColegiadosFallecidos(List<Colegiado> listaColegiadosFallecidos) {
        this.listaColegiadosFallecidos = listaColegiadosFallecidos;
    }

    public List<Colegiado> getListaColegiadosVitalicios() {
        return listaColegiadosVitalicios;
    }

    public void setListaColegiadosVitalicios(List<Colegiado> listaColegiadosVitalicios) {
        this.listaColegiadosVitalicios = listaColegiadosVitalicios;
    }


    public List<Preinscripcion> getListaPre() {
        return listaPre;
    }

    public void setListaPre(List<Preinscripcion> listaPre) {
        this.listaPre = listaPre;
    }

    public DetalleGuiaDelegate getDelegadoDetalleGuia() {
        return delegadoDetalleGuia;
    }

    public void setDelegadoDetalleGuia(DetalleGuiaDelegate delegadoDetalleGuia) {
        this.delegadoDetalleGuia = delegadoDetalleGuia;
    }

    public GuiaRemisionDelegate getDelegadoGuiaRemision() {
        return delegadoGuiaRemision;
    }

    public void setDelegadoGuiaRemision(GuiaRemisionDelegate delegadoGuiaRemision) {
        this.delegadoGuiaRemision = delegadoGuiaRemision;
    }

    public DetalleGuia getDetalleGuia() {
        return detalleGuia;
    }

    public void setDetalleGuia(DetalleGuia detalleGuia) {
        this.detalleGuia = detalleGuia;
    }

    public GuiaRemision getGuiaRemision() {
        return guiaRemision;
    }

    public void setGuiaRemision(GuiaRemision guiaRemision) {
        this.guiaRemision = guiaRemision;
    }

    public List<DetalleGuia> getListaDetalleGuia() {
        return listaDetalleGuia;
    }

    public void setListaDetalleGuia(List<DetalleGuia> listaDetalleGuia) {
        this.listaDetalleGuia = listaDetalleGuia;
    }

    public List<Colegiado> getListaPreColegiado() {
        return listaPreColegiado;
    }

    public void setListaPreColegiado(List<Colegiado> listaPreColegiado) {
        this.listaPreColegiado = listaPreColegiado;
    }


    public List<Preinscripcion> getGuiaPreinscrito() {
        return guiaPreinscrito;
    }

    public void setGuiaPreinscrito(List<Preinscripcion> guiaPreinscrito) {
        this.guiaPreinscrito = guiaPreinscrito;
    }

    public Integer getSeleccion() {
        return seleccion;
    }

    public void setSeleccion(Integer seleccion) {
        this.seleccion = seleccion;
    }

    public List<Colegiado> getListaOrdinarios() {
        return listaOrdinarios;
    }

    public void setListaOrdinarios(List<Colegiado> listaOrdinarios) {
        this.listaOrdinarios = listaOrdinarios;
    }

    public List<ColegiadoEspecialidad> getListaColPorCapitulo() {
        return listaColPorCapitulo;
    }

    public void setListaColPorCapitulo(List<ColegiadoEspecialidad> listaColPorCapitulo) {
        this.listaColPorCapitulo = listaColPorCapitulo;
    }

    public Capitulo getCapitulo() {
        return capitulo;
    }

    public void setCapitulo(Capitulo capitulo) {
        this.capitulo = capitulo;
    }

    public DirectivosDelegate getDelegadoDirectivos() {
        return delegadoDirectivos;
    }

    public void setDelegadoDirectivos(DirectivosDelegate delegadoDirectivos) {
        this.delegadoDirectivos = delegadoDirectivos;
    }

    public String getApeMat() {
        return apeMat;
    }

    public void setApeMat(String apeMat) {
        this.apeMat = apeMat;
    }

    public String getApePat() {
        return apePat;
    }

    public void setApePat(String apePat) {
        this.apePat = apePat;
    }

    public solicitanteDelegate getDelegadoSolicitante() {
        return delegadoSolicitante;
    }

    public void setDelegadoSolicitante(solicitanteDelegate delegadoSolicitante) {
        this.delegadoSolicitante = delegadoSolicitante;
    }

    public List<PersonaNatural> getListaPersonas() {
        return listaPersonas;
    }

    public void setListaPersonas(List<PersonaNatural> listaPersonas) {
        this.listaPersonas = listaPersonas;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public PersonaNatural getPersona() {
        return persona;
    }

    public void setPersona(PersonaNatural persona) {
        this.persona = persona;
    }

    public String getRuc() {
        return ruc;
    }

    public void setRuc(String ruc) {
        this.ruc = ruc;
    }

    public boolean isSoloColegiados() {
        return soloColegiados;
    }

    public void setSoloColegiados(boolean soloColegiados) {
        this.soloColegiados = soloColegiados;
    }

    public EspecialidadDelegate getDelegadoEspecialidad() {
        return delegadoEspecialidad;
    }

    public void setDelegadoEspecialidad(EspecialidadDelegate delegadoEspecialidad) {
        this.delegadoEspecialidad = delegadoEspecialidad;
    }

    public ColegiadoImagen getColImagen() {
        return colImagen;
    }

    public void setColImagen(ColegiadoImagen colImagen) {
        this.colImagen = colImagen;
    }

    public ColegiadoImagenDelegate getDelegadoColImagen() {
        return delegadoColImagen;
    }

    public void setDelegadoColImagen(ColegiadoImagenDelegate delegadoColImagen) {
        this.delegadoColImagen = delegadoColImagen;
    }

    public PreInscripcionDelegate getDelegadoPreInscripcion() {
        return delegadoPreInscripcion;
    }

    public void setDelegadoPreInscripcion(PreInscripcionDelegate delegadoPreInscripcion) {
        this.delegadoPreInscripcion = delegadoPreInscripcion;
    }

    public Preinscripcion getPreInscripcion() {
        return preInscripcion;
    }

    public void setPreInscripcion(Preinscripcion preInscripcion) {
        this.preInscripcion = preInscripcion;
    }

    public ColegiadoDeporte getColDeporte() {
        return colDeporte;
    }

    public void setColDeporte(ColegiadoDeporte colDeporte) {
        this.colDeporte = colDeporte;
    }

    public ColegiadoEspecialidad getColEspecialidad() {
        return colEspecialidad;
    }

    public void setColEspecialidad(ColegiadoEspecialidad colEspecialidad) {
        this.colEspecialidad = colEspecialidad;
    }

    public Colegiado getColegiado() {
        return colegiado;
    }

    public void setColegiado(Colegiado colegiado) {
        this.colegiado = colegiado;
    }

    public ColegiadoEspecialidadDelegate getDelegadoColESp() {
        return delegadoColESp;
    }

    public void setDelegadoColESp(ColegiadoEspecialidadDelegate delegadoColESp) {
        this.delegadoColESp = delegadoColESp;
    }

    public ColegiadoDelegate getDelegadoColegiado() {
        return delegadoColegiado;
    }

    public void setDelegadoColegiado(ColegiadoDelegate delegadoColegiado) {
        this.delegadoColegiado = delegadoColegiado;
    }

    public ColegiadoDeporteDelegate getDelegadoDeporte() {
        return delegadoDeporte;
    }

    public void setDelegadoDeporte(ColegiadoDeporteDelegate delegadoDeporte) {
        this.delegadoDeporte = delegadoDeporte;
    }

    public DireccionDelegate getDelegadoDireccion() {
        return delegadoDireccion;
    }

    public void setDelegadoDireccion(DireccionDelegate delegadoDireccion) {
        this.delegadoDireccion = delegadoDireccion;
    }

    public EstudioColegiadoDelegate getDelegadoEstudioColegiado() {
        return delegadoEstudioColegiado;
    }

    public void setDelegadoEstudioColegiado(EstudioColegiadoDelegate delegadoEstudioColegiado) {
        this.delegadoEstudioColegiado = delegadoEstudioColegiado;
    }

    public ExperienciaLaboralDelegate getDelegadoExperiencia() {
        return delegadoExperiencia;
    }

    public void setDelegadoExperiencia(ExperienciaLaboralDelegate delegadoExperiencia) {
        this.delegadoExperiencia = delegadoExperiencia;
    }

    public VinculoColegiadoDelegate getDelegadoFamiliar() {
        return delegadoFamiliar;
    }

    public void setDelegadoFamiliar(VinculoColegiadoDelegate delegadoFamiliar) {
        this.delegadoFamiliar = delegadoFamiliar;
    }

    public FormacionProfesionalDelegate getDelegadoFormacion() {
        return delegadoFormacion;
    }

    public void setDelegadoFormacion(FormacionProfesionalDelegate delegadoFormacion) {
        this.delegadoFormacion = delegadoFormacion;
    }

    public TelefonoDelegate getDelegadoTelefono() {
        return delegadoTelefono;
    }

    public void setDelegadoTelefono(TelefonoDelegate delegadoTelefono) {
        this.delegadoTelefono = delegadoTelefono;
    }

    public DireccionPersona getDireccion() {
        return direccion;
    }

    public void setDireccion(DireccionPersona direccion) {
        this.direccion = direccion;
    }

    public EstudioColegiado getEstudioColegiado() {
        return estudioColegiado;
    }

    public void setEstudioColegiado(EstudioColegiado estudioColegiado) {
        this.estudioColegiado = estudioColegiado;
    }

    public ExperienciaLaboral getExpLaboral() {
        return expLaboral;
    }

    public void setExpLaboral(ExperienciaLaboral expLaboral) {
        this.expLaboral = expLaboral;
    }

    public VinculoColegiado getFamiliares() {
        return familiares;
    }

    public void setFamiliares(VinculoColegiado familiares) {
        this.familiares = familiares;
    }

    public FormacionProfesional getFormProf() {
        return formProf;
    }

    public void setFormProf(FormacionProfesional formProf) {
        this.formProf = formProf;
    }

    public TelefonoSolicitante getTelefono() {
        return telefono;
    }

    public void setTelefono(TelefonoSolicitante telefono) {
        this.telefono = telefono;
    }

    public Date getFechaFin() {
        return fechaFin;
    }

    public void setFechaFin(Date fechaFin) {
        this.fechaFin = fechaFin;
    }

    public Date getFechaIni() {
        return fechaIni;
    }

    public void setFechaIni(Date fechaIni) {
        this.fechaIni = fechaIni;
    }

    public String getCodigoCIP() {
        return codigoCIP;
    }

    public void setCodigoCIP(String codigoCIP) {
        this.codigoCIP = codigoCIP;
    }

    public DepartamentoDelegate getDelegadoDpto() {
        return delegadoDpto;
    }

    public void setDelegadoDpto(DepartamentoDelegate delegadoDpto) {
        this.delegadoDpto = delegadoDpto;
    }

    public ProvinciaDelegate getDelegadoProvincia() {
        return delegadoProvincia;
    }

    public void setDelegadoProvincia(ProvinciaDelegate delegadoProvincia) {
        this.delegadoProvincia = delegadoProvincia;
    }

    public Departamento getDpto() {
        return dpto;
    }

    public void setDpto(Departamento dpto) {
        this.dpto = dpto;
    }

    public Provincia getProvincia() {
        return provincia;
    }

    public void setProvincia(Provincia provincia) {
        this.provincia = provincia;
    }
    
    public String getDni() {
        return dni;
    }

    public void setDni(String dni) {
        this.dni = dni;
    }

    public DireccionPersona getDireccionEmp() {
        return direccionEmp;
    }

    public void setDireccionEmp(DireccionPersona direccionEmp) {
        this.direccionEmp = direccionEmp;
    }

    public TelefonoSolicitante getTelefonoEmp() {
        return telefonoEmp;
    }

    public void setTelefonoEmp(TelefonoSolicitante telefonoEmp) {
        this.telefonoEmp = telefonoEmp;
    }

    public Deporte getDeporte() {
        return deporte;
    }

    public void setDeporte(Deporte deporte) {
        this.deporte = deporte;
    }

    public Long getCodigo() {
        return codigo;
    }

    public void setCodigo(Long codigo) {
        this.codigo = codigo;
    }

    public EscuelaDelegate getDelegadoEscuela() {
        return delegadoEscuela;
    }

    public void setDelegadoEscuela(EscuelaDelegate delegadoEscuela) {
        this.delegadoEscuela = delegadoEscuela;
    }

    public FacultadDelegate getDelegadoFacultad() {
        return delegadoFacultad;
    }

    public void setDelegadoFacultad(FacultadDelegate delegadoFacultad) {
        this.delegadoFacultad = delegadoFacultad;
    }

    public UniversidadDelegate getDelegadoUniversidad() {
        return delegadoUniversidad;
    }

    public void setDelegadoUniversidad(UniversidadDelegate delegadoUniversidad) {
        this.delegadoUniversidad = delegadoUniversidad;
    }

    public Escuela getEscuela() {
        return escuela;
    }

    public void setEscuela(Escuela escuela) {
        this.escuela = escuela;
    }

    public Facultad getFacultad() {
        return facultad;
    }

    public void setFacultad(Facultad facultad) {
        this.facultad = facultad;
    }

    public Universidad getUniversidad() {
        return universidad;
    }

    public void setUniversidad(Universidad universidad) {
        this.universidad = universidad;
    }

    public PersonaJuridicaDelegate getDelegadoJuridico() {
        return delegadoJuridico;
    }

    public void setDelegadoJuridico(PersonaJuridicaDelegate delegadoJuridico) {
        this.delegadoJuridico = delegadoJuridico;
    }

    public PersonaJuridica getPerJuridica() {
        return perJuridica;
    }

    public void setPerJuridica(PersonaJuridica perJuridica) {
        this.perJuridica = perJuridica;
    }

    public Provincia getProvEmp() {
        return provEmp;
    }

    public void setProvEmp(Provincia provEmp) {
        this.provEmp = provEmp;
    }

    public EspCapDelegate getDelegadoEspCap() {
        return delegadoEspCap;
    }

    public void setDelegadoEspCap(EspCapDelegate delegadoEspCap) {
        this.delegadoEspCap = delegadoEspCap;
    }

    public EspecialidadCapitulo getEspCap() {
        return espCap;
    }

    public void setEspCap(EspecialidadCapitulo espCap) {
        this.espCap = espCap;
    }

    public PersonaNaturalDelegate getDelegadoNatural() {
        return delegadoNatural;
    }

    public void setDelegadoNatural(PersonaNaturalDelegate delegadoNatural) {
        this.delegadoNatural = delegadoNatural;
    }

    public PersonaNatural getPerNatural() {
        return perNatural;
    }

    public void setPerNatural(PersonaNatural perNatural) {
        this.perNatural = perNatural;
    }

    public List getLista() {
        return lista;
    }

    public void setLista(List lista) {
        this.lista = lista;
    }

    public List<Colegiado> getListaCol() {
        return listaCol;
    }

    public void setListaCol(List<Colegiado> listaCol) {
        this.listaCol = listaCol;
    }

    public ColegiadoImagen getColFirma() {
        return colFirma;
    }

    public void setColFirma(ColegiadoImagen colFirma) {
        this.colFirma = colFirma;
    }

    public ColegiadoImagen getColFoto() {
        return colFoto;
    }

    public void setColFoto(ColegiadoImagen colFoto) {
        this.colFoto = colFoto;
    }

    public List<Preinscripcion> getListaPreIncritos() {
        return listaPreIncritos;
    }

    public void setListaPreIncritos(List<Preinscripcion> listaPreIncritos) {
        this.listaPreIncritos = listaPreIncritos;
    }

    public Date getFin() {
        return fin;
    }

    public void setFin(Date fin) {
        this.fin = fin;
    }

    public Date getIni() {
        return ini;
    }

    public void setIni(Date ini) {
        this.ini = ini;
    }

    //listado de Pre -Inscritos en rango de fechas

    public List<Preinscripcion> ListaPorFecha(Date fechaIni, Date fechaFin){

        listaPre = new ArrayList<Preinscripcion>();
        return listaPre = delegadoPreInscripcion.listaPorFechasOrdenApellidos(fechaIni, fechaFin);
    }

    public List<Preinscripcion> ListaPorFechaGuias(Date fechaIni, Date fechaFin){

        listaPre = null;
        return listaPre = delegadoPreInscripcion.listaPorFechasOrdenApellidos(fechaIni, fechaFin);
    }

    public String listarPorFechaGuia(){

        ListaPorFechaGuias(fechaIni, fechaFin);
//        listaDetalleGuia = new ArrayList<DetalleGuia>();
        return null;
    }
    private boolean bandera;

    public boolean getBandera() {
        return bandera;
    }

    public void setBandera(boolean bandera) {
        this.bandera = bandera;
    }

    public String listaPreInscritos(){

        ListaPorFecha(fechaIni, fechaFin);        
        fechaIni=null;
        fechaFin=null;
        bandera = true;
        return null;
    }

    public String cambiaBandera(){

        if(bandera==true){
            listaPre = null;
            bandera = false;
            fechaIncorporacion = null;
            fechaAporte = null;
        }else{
            bandera = true;
            listaPre = null;
            fechaIncorporacion = null;
            fechaAporte = null;
            return null;
        }
        return null;
    }

    //LISTAR PREINSCRITOS (SOLO MOSTRAR DATOS)
    public List<Preinscripcion> listaPreInscritosXFechaOrdenDNI(){

        listaPreIncritos = new ArrayList<Preinscripcion>();
        listaPreIncritos = delegadoPreInscripcion.listaPorFechasOrdenDNI(fechaIni, fechaFin);
        cantidad = listaPreIncritos.size();
        return listaPreIncritos;
    }

    public List<Preinscripcion> listaPreInscritosXFechaOrdenApellidos(){

        listaPreIncritos = new ArrayList<Preinscripcion>();
        listaPreIncritos = delegadoPreInscripcion.listaPorFechasOrdenApellidos(fechaIni, fechaFin);
        cantidad = listaPreIncritos.size();
        return listaPreIncritos;
    }

    public List<Preinscripcion> listaPreInscritosXFechaOrdenFechaIncrip(){

        listaPreIncritos = new ArrayList<Preinscripcion>();
        listaPreIncritos = delegadoPreInscripcion.listaPorFechasOrdenFechaIncrip(fechaIni, fechaFin);
        cantidad = listaPreIncritos.size();
        return listaPreIncritos;
    }

    public List<Preinscripcion> listaPreInscritosXFechaOrdenCapitulo(){

        listaPreIncritos = new ArrayList<Preinscripcion>();
        listaPreIncritos = delegadoPreInscripcion.listaPorFechasOrdenCapitulo(fechaIni, fechaFin);
        cantidad = listaPreIncritos.size();
        return listaPreIncritos;
    }

    public List<Preinscripcion> listaPreInscritosXFechaOrdenEspecialidad(){

        listaPreIncritos = new ArrayList<Preinscripcion>();
        listaPreIncritos = delegadoPreInscripcion.listaPorFechasOrdenEspecialidad(fechaIni, fechaFin);
        cantidad = listaPreIncritos.size();
        return listaPreIncritos;
    }

    public String relacionPreInscritos(){

        try{
        if(seleccion == null){
            seleccion =1;
        }
        switch(seleccion){
            case 1 : listaPreInscritosXFechaOrdenDNI();
                     break;
            case 2 : listaPreInscritosXFechaOrdenApellidos();     
                     break;
            case 3 : listaPreInscritosXFechaOrdenFechaIncrip();
                     break;
            case 4 : listaPreInscritosXFechaOrdenCapitulo();
                     break;
            case 5 : listaPreInscritosXFechaOrdenEspecialidad();
                     break;
        }
        oculto = true;
        return null;
        }catch(Exception ex){
            oculto = false;
            return null;
        }
    }

    public String mostrarOculto(){

        oculto = false;
        fechaIni = null;
        fechaFin = null;
        listaPreIncritos = null;

        return null;

    }

    private String nroCIP;
    private Date fechaIncorporacion;
    private Date fechaAporte;

    public String getNroCIP() {
        return nroCIP;
    }

    public void setNroCIP(String nroCIP) {
        this.nroCIP = nroCIP;
    }

    public Date getFechaAporte() {
        return fechaAporte;
    }

    public void setFechaAporte(Date fechaAporte) {
        this.fechaAporte = fechaAporte;
    }

    public Date getFechaIncorporacion() {
        return fechaIncorporacion;
    }

    public void setFechaIncorporacion(Date fechaIncorporacion) {
        this.fechaIncorporacion = fechaIncorporacion;
    }

    //ASIGNAMOS EL NRO CIP A LOS NUEVOS COLEGIADOS
    public String asignarNroCIP(){
        try{
        HttpServletRequest request = ControladorAbstracto.getRequest();
        String Imagen = "/imagenColegiatura/LogoCorreo.gif";
        String rutaImagen = request.getRealPath(Imagen);
        String cuerpo;
        Date fechaInicio;
        Long codigoColegiado;
        
        listaColPre = listaPre;

            for(Preinscripcion colegia : listaColPre){
              //if (!chekeaCIP()) {
                if(!colegia.getPerCodigo().getColegiado().getColnumeroCip().isEmpty()){
                    
                    colegia.getPerCodigo().setPerTipo(1);
                    colegia.getPerCodigo().getColegiado().setColfechaIncorporacion(fechaIncorporacion);
                    colegia.getPerCodigo().getColegiado().setColfechaAporte(fechaAporte);
                    colegia.getPerCodigo().getColegiado().setColfechaHabilidad(fechaAporte);
                    colegia.getPerCodigo().getColegiado().setColCondicion(false);

                    delegadoNatural.edit(colegia.getPerCodigo());
                    delegadoColegiado.edit(colegia.getPerCodigo().getColegiado());

                    origen = "colegiatura@cipcdll.org.pe";
                    asunto = "Asignación de Número CIP";
                    cuerpo = "Estimado Ing."+colegia.getPerCodigo().getNombreCompletoPersona()+"\n\n";
                    cuerpo = cuerpo+"Mediante este correo le hacemos de conocimiento que su número cip es el siguiente : "+colegia.getPerCodigo().getColegiado().getColnumeroCip()+", el cual podra utilizar previo pago \n";
                    cuerpo = cuerpo+"de sus 3 primeras cuotas.\n\n\n";
                    contenido = cuerpo+"sin otro particular me despido de usted.";
                    destino = colegia.getPerCodigo().getSolcorreopersonal1();
                    EnviaEmail.envia(origen, destino, asunto, contenido, rutaImagen);

                    //generacion de cuotas de colegiados nuevos
                    fechaInicio = fechaAporte;
                    codigoColegiado = colegia.getPerCodigo().getSolCodigo();
                    generarCuotas(fechaInicio, codigoColegiado);
                }                
//              }else{
//                  colegia.getPerCodigo().getColegiado().setColnumeroCip(null);
//                  return null;
//              }
            }
        
            bandera = false;
            fechaAporte = null;
            fechaIncorporacion = null;
            fechaIni=null;
            fechaFin=null;
            listaPre = new ArrayList<Preinscripcion>();

           return null;
        }catch(Exception ex){
            return null;
        }
    }

    public String generarCuotas(Date fechaInicio, Long codigoColegiado){
    
        Integer mes, year, mesFin;
        String fechaFin = "";
        Date date = new Date();
        DateFormat formatter;
        
        try{
            SimpleDateFormat sdfm = new SimpleDateFormat("MM");
            mes = Integer.parseInt(sdfm.format(fechaAporte));

            SimpleDateFormat sdfy = new SimpleDateFormat("yyyy");
            year = Integer.parseInt(sdfy.format(fechaAporte));

            if(mes<=10){
                mesFin = 12;
                fechaFin = "01/"+mesFin.toString()+"/"+year.toString();
            }
            if(mes==11 || mes ==12){
                mesFin = 12;
                year = year+1;
                fechaFin = "01/"+mesFin.toString()+"/"+year.toString();
            }

            formatter = new SimpleDateFormat("dd/MM/yyyy");
            date = (Date)formatter.parse(fechaFin);
//            System.out.println("date : "+date+" fecha Inicio : "+fechaInicio+" codigo : "+codigoColegiado);

            delegadoCuotas.generarCuotas(fechaInicio, date, codigoColegiado);

        return  null;
        }catch(Exception ex){
            return null;
        }
    }
    //VALIDAR LOS NUMEROS CIP
    public boolean chekeaCIP(){

        String CIP;
        Colegiado CIPcolegiado;
        
        for(Preinscripcion preinscrip : listaColPre){

            CIPcolegiado = new Colegiado();
            CIP = preinscrip.getPerCodigo().getColegiado().getColnumeroCip();

            if(CIP == null || CIP.length()== 0){
                mostrarMensaje("Error: ", "Ingreso número de CIP nulo", FacesMessage.SEVERITY_ERROR);
                return true;
            }else{
                try{
                    CIPcolegiado = delegadoColegiado.buscaPorCip(CIP);
                    if(CIPcolegiado != null){
                       mostrarMensaje("Error: ", "Ingreso número de CIP repetido", FacesMessage.SEVERITY_ERROR);
                       return true;
                    }
                }catch(Exception ex){
                    return false;
                }
                
            }
        }
        return false;
    }

    //VALIDAMOS QUE LOS CIP NO SEAN NULOS NI REPETIDOS
    public boolean validarCIP(){
        
        List<Preinscripcion> listaCole = listaColPre;
        String nroCip = "";
        for (int i=0; i < listaCole.size(); i++) {
            try {
                nroCip = listaCole.get(i).getPerCodigo().getColegiado().getColnumeroCip();
                if (nroCip == null || nroCip.length() == 0) {
                    mostrarMensaje("Error: ", "Ingrese numero de CIP", FacesMessage.SEVERITY_ERROR);
                    return true;
                }
                for (int j=0; j < listaCole.size(); j++) {
                    if(i<listaCole.size()-1 && j<listaCole.size()-1){
                      if (nroCip.compareTo(listaCole.get(j+1).getPerCodigo().getColegiado().getColnumeroCip()) == 0) {
                        mostrarMensaje("Error: ", "Ingreso numero de CIP repetido", FacesMessage.SEVERITY_ERROR);
                        return true;
                       }
                    }
                }
            } catch (Exception e) {
                mostrarMensaje("Error: ", "Ingrese numero de CIP", FacesMessage.SEVERITY_ERROR);
            }
        }
        return false;
    }

    public void mostrarMensaje(String resumen, String detalle, FacesMessage.Severity severidad) {
        try {
            FacesMessage fm = new FacesMessage(severidad, resumen, detalle);
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        } catch (Exception e) {
            FacesMessage fm = new FacesMessage(severidad, resumen, detalle);
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        }
    }

    
    public String listaPre(){

        return "listaPre";
    }

    public String retornar(){

        lista=null;
        return "retornar";
    }
    
   //fin de listado de Pre -Inscritos en rango de fechas

   public String buscaPorCipPersona(){
       
       colegiado = new Colegiado();
       try {

          Integer cifras = codigoCIP.length();
             if(cifras<3){
                 codigoCIP = "0000"+ codigoCIP;
             }else{
                   if(cifras<4){
                       codigoCIP = "000"+codigoCIP;
                   }else{
                       if(cifras<5){
                           codigoCIP = "00"+codigoCIP;
                       }else{
                           if(cifras<6){
                              codigoCIP = "0"+codigoCIP;
                           }
                       }
                   }
             }
            colegiado = delegadoColegiado.buscaPorCip(codigoCIP);            
            if(colegiado.getColnumeroCip()!= null){
            persona = delegadoNatural.buscaXCodigo(colegiado.getSolCodigo());
            colegiado = new Colegiado();
            codigoCIP = "";
            return "subirDocumentos";
            }else{
                noHallado = true;
                return null;
            }

        } catch (Exception e) {
            
            return null;
        }
    }

    public String buscarColegiadoPersona(){

        try{
            ruc = "";
            soloColegiados = true;
            listaPersonas  = new ArrayList<PersonaNatural>();
            listaPersonas = delegadoSolicitante.buscarPerNatural(dni, apePat, apeMat, nombre, ruc, soloColegiados);
            if(listaPersonas.size()>0){
                dni = "";
                apePat = "";
                apeMat ="";
                nombre = "";
                return null;
            }else{
                noHallado = true;
                return null;
            }
        }catch(Exception ex){
            
            return null;
        }
     
    }

    //MOSTRAR LOS DATOS DE UN COLEGIADO

    //BUSCAMOS UN COLEGIADO POR NOMBRES, APELLIDO PATERNO, APELLIDO MATERNO

    public String buscarColegiado(){

        try{
            ruc = "";
            soloColegiados = true;
            ColegiadoImagen foto = new ColegiadoImagen();

            listaPersonasFotos = new ArrayList<PersonaNatural>();
            listaPersonas = new ArrayList<PersonaNatural>();
            listaPersonas = delegadoSolicitante.buscarPerNatural(dni, apePat, apeMat, nombre, ruc, soloColegiados);
            if(listaPersonas.size()>0){
                for(PersonaNatural per : listaPersonas ){

                    Long codigoPer = per.getSolCodigo();
                    foto = delegadoColImagen.buscaFoto(codigoPer);
                    if(foto != null) {
                       per.setFoto(foto);
                    }
                    listaPersonasFotos.add(per);
                }
                dni = "";
                apePat = "";
                apeMat ="";
                nombre = "";
        }else{
            noHallado = true;
        }
        }catch(Exception ex){
            
            return null;
        }
      return null;
    }

    public void drawImagenListaFotos(OutputStream output, Object object) throws IOException{

        PersonaNatural person = new PersonaNatural();

        try {
             Integer index = new Integer(object.toString());
             person = listaPersonasFotos.get(index);
             File file = new File(person.getFoto().getCimRuta());
             FileInputStream inputStream = new FileInputStream(file);
             int tamañoInput = inputStream.available();
             byte[] datos = new byte[tamañoInput];
             inputStream.read(datos, 0, tamañoInput);
             output.write(datos, 0, tamañoInput);

        } catch (Exception e) {

        }
    }

    //actualizar la habilidad del colegiado
    public String verHabilidad(){

        String MesActual, MesHabil, yearActual,yearHabil;        
        Integer MA,MH,YA,YH;
        MesActual="";  MesHabil=""; yearActual=""; yearHabil="";
        MA = null; MH=null; YA=null; YH=null;
        
        SimpleDateFormat ma = new SimpleDateFormat("MM");
        MesActual = ma.format(new Date());
        SimpleDateFormat ya = new SimpleDateFormat("yyyy");
        yearActual = ya.format(new Date());

        SimpleDateFormat mh = new SimpleDateFormat("MM");
        MesHabil = mh.format(colegiado.getColfechaHabilidad());
        SimpleDateFormat yh = new SimpleDateFormat("yyyy");
        yearHabil = yh.format(colegiado.getColfechaHabilidad());

        MA = Integer.parseInt(MesActual);
        YA = Integer.parseInt(yearActual);
        MH = Integer.parseInt(MesHabil);
        YH = Integer.parseInt(yearHabil);

        if(YA>YH){
            colegiado.setColCondicion(false);
            delegadoColegiado.edit(colegiado);           
        }else{
            if(MA>MH){
                colegiado.setColCondicion(false);
                delegadoColegiado.edit(colegiado);
            }else{
                colegiado.setColCondicion(true);
                delegadoColegiado.edit(colegiado);
            }
        }
        
        return null;
    }

    //BUSCAMOS EL COLEGIADO POR CIP
    public String buscaPorCip(){
       try {

        preInscripcion = new Preinscripcion();
        colegiado = new Colegiado();
        colDeporte = new ColegiadoDeporte();
        direccion = new DireccionPersona();
        formProf = new FormacionProfesional();
        telefono = new TelefonoSolicitante();
        familiares = new VinculoColegiado();
        expLaboral = new ExperienciaLaboral();
        colEspecialidad = new ColegiadoEspecialidad();
        estudioColegiado = new EstudioColegiado();
        provincia = new Provincia();
        dpto = new Departamento();
        estadoCivil = null;
        colImagen = new ColegiadoImagen();

        Integer cifras = codigoCIP.length();
             if(cifras<3){
                 codigoCIP = "0000"+ codigoCIP;
             }else{
                   if(cifras<4){
                       codigoCIP = "000"+codigoCIP;
                   }else{
                       if(cifras<5){
                           codigoCIP = "00"+codigoCIP;
                       }else{
                           if(cifras<6){
                              codigoCIP = "0"+codigoCIP;
                           }
                       }
                   }
             }
            colegiado = delegadoColegiado.buscaPorCip(codigoCIP);
            if(colegiado.getTipoColegiado().getTcoCodigo()!=2 || colegiado.getTipoColegiado().getTcoCodigo()!=4){
                if(colegiado.getColfechaHabilidad()!= null){
                   verHabilidad();
                }
            }
            colegiado = new Colegiado();
            colegiado = delegadoColegiado.buscaPorCip(codigoCIP);
            if(colegiado.getColnumeroCip() != null){
                buscaDireccion();
                buscaProvincia();
                muestraFoto();
                muestraFirma();
                ListarSellos();
                ListaColegiadoEsp();
                muestraCurriculum();
                getListarTelefonos();
                getlistarExpLaboral();
                getListarEstudiosCol();
                getListarVinculos();
                getListaDeporte();

                codigoCIP = "";
                return "mostrarColegiado";
            }else{
                noHallado = true;
                return null;
            }
         
        } catch (Exception e) {
            
            return null;
        }
    }

    public String cerrarVentana(){

        codigoCIP = "";
        dni = "";
        apePat = "";
        apeMat ="";
        nombre = "";
        noHallado = false;
        inicializa();
        return null;
    }

    //SELECCIONAMOS EL COLEGIADO DE LA LISTA DE BUSQUEDA
    public String seleccionar(){

        try {

            preInscripcion = new Preinscripcion();
            colegiado = new Colegiado();
            colDeporte = new ColegiadoDeporte();
            direccion = new DireccionPersona();
            formProf = new FormacionProfesional();
            telefono = new TelefonoSolicitante();
            familiares = new VinculoColegiado();
            expLaboral = new ExperienciaLaboral();
            colEspecialidad = new ColegiadoEspecialidad();
            estudioColegiado = new EstudioColegiado();
            provincia = new Provincia();
            dpto = new Departamento();
            estadoCivil = null;
            colImagen = new ColegiadoImagen();

            colegiado = delegadoColegiado.buscaColegiado(persona.getSolCodigo());//buscaPorDni(persona.getPerNroDNI());
            if(colegiado.getTipoColegiado().getTcoCodigo()!=2 || colegiado.getTipoColegiado().getTcoCodigo()!=4){
              if(colegiado.getColfechaHabilidad()!= null){
                   verHabilidad();
                }
            }
            colegiado = new Colegiado();
            colegiado = delegadoColegiado.buscaColegiado(persona.getSolCodigo());
            buscaDireccion();
            buscaProvincia();
            muestraFoto();
            muestraFirma();
            ListarSellos();
            ListaColegiadoEsp();
            muestraCurriculum();
            getListarTelefonos();
            getlistarExpLaboral();
            getListarEstudiosCol();
            getListarVinculos();
            getListaDeporte();

            codigoCIP = "";
            listaPersonasFotos=null; // ultimo cambio
            return "mostrarColegiado";

        } catch (Exception e) {
            return null;
        }
    }

    //BUSCAR COLEGIADO POR WEB

    public String buscarColegiadoWeb(){

        try {

            preInscripcion = new Preinscripcion();
            colegiado = new Colegiado();
            colDeporte = new ColegiadoDeporte();
            direccion = new DireccionPersona();
            formProf = new FormacionProfesional();
            telefono = new TelefonoSolicitante();
            familiares = new VinculoColegiado();
            expLaboral = new ExperienciaLaboral();
            colEspecialidad = new ColegiadoEspecialidad();
            estudioColegiado = new EstudioColegiado();
            provincia = new Provincia();
            dpto = new Departamento();
            estadoCivil = null;
            colImagen = new ColegiadoImagen();

            colegiado = delegadoColegiado.buscaColegiado(persona.getSolCodigo());//buscaPorDni(persona.getPerNroDNI());
            if(colegiado.getTipoColegiado().getTcoCodigo()!=2 || colegiado.getTipoColegiado().getTcoCodigo()!=4){
               if(colegiado.getColfechaHabilidad()!= null){
                   verHabilidad();
                }
            }
            colegiado = new Colegiado();
            colegiado = delegadoColegiado.buscaColegiado(persona.getSolCodigo());
//            buscaDireccion();
//            buscaProvincia();
            muestraFoto();
//            muestraFirma();
//            ListarSellos();
            ListaColegiadoEsp();
            muestraCurriculum();

            codigoCIP = "";
            listaPersonasFotos = null; // ultimo cambio
            return "mostrarColegiadoWeb";

        } catch (Exception e) {
            return null;
        }
    }

        public String buscaColWebPorCip(){
       try {

        preInscripcion = new Preinscripcion();
        colegiado = new Colegiado();
        colDeporte = new ColegiadoDeporte();
        direccion = new DireccionPersona();
        formProf = new FormacionProfesional();
        telefono = new TelefonoSolicitante();
        familiares = new VinculoColegiado();
        expLaboral = new ExperienciaLaboral();
        colEspecialidad = new ColegiadoEspecialidad();
        estudioColegiado = new EstudioColegiado();
        provincia = new Provincia();
        dpto = new Departamento();
        estadoCivil = null;
        colImagen = new ColegiadoImagen();

        Integer cifras = codigoCIP.length();
             if(cifras<3){
                 codigoCIP = "0000"+ codigoCIP;
             }else{
                   if(cifras<4){
                       codigoCIP = "000"+codigoCIP;
                   }else{
                       if(cifras<5){
                           codigoCIP = "00"+codigoCIP;
                       }else{
                           if(cifras<6){
                              codigoCIP = "0"+codigoCIP;
                           }
                       }
                   }
             }
            colegiado = delegadoColegiado.buscaPorCip(codigoCIP);
            if(colegiado.getTipoColegiado().getTcoCodigo()!=2 || colegiado.getTipoColegiado().getTcoCodigo()!=4){
               if(colegiado.getColfechaHabilidad()!= null){
                   verHabilidad();
                }
            }
            colegiado = new Colegiado();
            colegiado = delegadoColegiado.buscaPorCip(codigoCIP);
            if(colegiado.getColnumeroCip()!= null){
//            buscaDireccion();
//            buscaProvincia();
            muestraFoto();
//            muestraFirma();
//            ListarSellos();
            ListaColegiadoEsp();
            muestraCurriculum();

            codigoCIP = "";
            return "mostrarColegiadoWeb";
            }else{
                noHallado = true;
                return null;
            }
       } catch (Exception e) {
           
            return null;
        }
    }

    public String buscarColWeb(){

        inicializa();
        return "ir_a_buscarColWeb";
    }
    //MOSTRAR ESTADO CIVIL

    public String getEstadoCivil(){

        if(colegiado.getPersonaNatural().getPerestadoCivil()==null){
            return estadoCivil="NN";
        }
        if(colegiado.getPersonaNatural().getPerestadoCivil()==1){
            return estadoCivil="Soltero";
        }else{
            if(colegiado.getPersonaNatural().getPerestadoCivil()==2){
                return estadoCivil = "Casado";
            }else{
                if(colegiado.getPersonaNatural().getPerestadoCivil()==3){
                    return estadoCivil = "Divorciado";
                }else{
                    if(colegiado.getPersonaNatural().getPerestadoCivil()==4){
                       return estadoCivil = "Viudo";
                    }
                }
            }
        }
        return estadoCivil;
    }

    public List<ColegiadoEspecialidad> ListaColegiadoEsp(){

        listaColegiadoEspecialidad = new ArrayList<ColegiadoEspecialidad>();
        return listaColegiadoEspecialidad = delegadoColESp.listaEspColegiado(colegiado.getSolCodigo());
    }
    //MUESTRA CURRICULUM COLEGIADO

    public String muestraCurriculum(){
        try{
        colImagen = delegadoColImagen.buscaCV(colegiado.getSolCodigo());
        return null;
        }catch(Exception ex){
            return null;
        }
    }

    //MOSTRAMOS LA FOTO DEL COLEGIADO
    public String muestraFoto(){

    try{
       colFoto = new ColegiadoImagen();
       colFoto = delegadoColImagen.buscaFoto(colegiado.getSolCodigo());
          System.out.println("foto :"+ colFoto.getCimRuta());
      }catch(Exception ex){
          System.out.println(ex);
      }
       return null;
    }

    public void drawImagenFoto(OutputStream output, Object object) throws IOException{

        try {
             File file = new File(colFoto.getCimRuta());
             FileInputStream inputStream = new FileInputStream(file);
             int tamañoInput = inputStream.available();
             byte[] datos = new byte[tamañoInput];
             inputStream.read(datos, 0, tamañoInput);
             output.write(datos, 0, tamañoInput);

        } catch (Exception e) {

        }
    }

    //MOSTRAMOS LA FIRMA DEL COLEGIADO
    public String muestraFirma(){

        try{
        colFirma = new ColegiadoImagen();
        colFirma = delegadoColImagen.buscaFiram(colegiado.getSolCodigo());
        }catch(Exception ex){
            System.out.println(ex);
        }
        return null;
    }

    public void drawImagenFirma(OutputStream output, Object object) throws IOException{

        try {
             File file = new File(colFirma.getCimRuta());
             FileInputStream inputStream = new FileInputStream(file);
             int tamañoInput = inputStream.available();
             byte[] datos = new byte[tamañoInput];
             inputStream.read(datos, 0, tamañoInput);
             output.write(datos, 0, tamañoInput);

        } catch (Exception e) {

        }
    }
    
    //LISTAMOS LOS SELLOS DEL COLEGIADO
    public List<ColegiadoImagen> ListarSellos(){
        
      try{
            return listaSellos = delegadoColImagen.listaSellos(colegiado.getSolCodigo());
         }catch(Exception ex){
            System.out.println(ex);
            return null;
        }
    }

    public void drawImagenSellos(OutputStream output, Object object) throws IOException{

        ColegiadoImagen Sello = new ColegiadoImagen();

        try {
             Integer index = new Integer(object.toString());
             Sello = listaSellos.get(index);
             File file = new File(Sello.getCimRuta());
             FileInputStream inputStream = new FileInputStream(file);
             int tamañoInput = inputStream.available();
             byte[] datos = new byte[tamañoInput];
             inputStream.read(datos, 0, tamañoInput);
             output.write(datos, 0, tamañoInput);

        }catch (Exception e) {
            
        }
    }

    //BUSCAMOS DIRECCION DEL COLEGIADO
    public String buscaDireccion(){

       listaDirecciones = null;
       try {

            listaDirecciones = delegadoDireccion.buscaDireccColegiado(colegiado.getSolCodigo());           
            direccion = listaDirecciones.get(0);          
            
            if(direccion.getDpeNro()== null || direccion.getDpeNro().toString().length()==0){
                nro = "";
                d1 = true;
            }else{
                nro = " Nro. ";
                d1 = false;
            }
            if(direccion.getDpeInterior() == null || direccion.getDpeInterior().length()==0){
                interior = "";
                d2 = true;
            }else{
                interior = "Int. ";
                d2 = false;
            }            
            if(direccion.getDpePiso() == null || direccion.getDpePiso().toString().length()==0){
                piso = "";
                d3 = true;
            }else{
                piso = "Ps. ";
                d3 = false;
            }            
            if(direccion.getDpeDpto() == null || direccion.getDpeDpto().length()==0){
                depto = "";
                d4 = true;
            }else{
                depto = "Dpto ";
                d4 = false;
            }            
            if(direccion.getDpeManzana()== null || direccion.getDpeManzana().length()==0){
                mz = "";
                d5 = true;
            }else{
                mz = "Mz. ";
                d5 = false;
            }
            if(direccion.getDpeLote() == null || direccion.getDpeLote().length()==0){
                lote = "";
                d6 = true;
            }else{
                lote = "Lt. ";
                d6 = false;
            }            
            if(direccion.getDpeEtapa() == null || direccion.getDpeEtapa().length()==0){
                etapa = "";
                d7 = true;
            }else{
                etapa = "Et. ";
                d7 = false;
            }            
            if(direccion.getDpeSector() == null || direccion.getDpeSector().length()==0){
                sector = "";
                d8 = true;
            }else{
                sector = "";
                d8 = false;
            }

        } catch (Exception ex) {
            direccion = new DireccionPersona();
            System.out.println(ex);
        }
        return null;
    }

    //BUSCAMOS PROVINCIA

    public String buscaProvincia(){

        try {
            provincia = new Provincia();
            provincia = delegadoProvincia.buscaProvincia(direccion.getDisCodigo().getProCodigo().getProCodigo());
            return null;
        } catch (Exception ex) {
            System.out.println(ex);
            return null;
        }
    }

    //LISTAMOS LOS TELEFONOS DEL COLEGIADO

    public List<TelefonoSolicitante> getListarTelefonos(){

        try{
            listaTelefonosColegiado = new ArrayList<TelefonoSolicitante>();
            listaTelefonosColegiado = delegadoTelefono.listaTelefonoColegiado(colegiado.getSolCodigo());
            return listaTelefonosColegiado;
        }catch(Exception ex){
            listaTelefonosColegiado = null;
            return null;
        }
    }

    //BUSCAR EXPERIENCIA LABORAL

    public List<ExperienciaLaboral> getlistarExpLaboral(){

        try{            
            listaExpLaboral = new ArrayList<ExperienciaLaboral>();
            listaExpLaboral = delegadoExperiencia.listaExpColegiado(colegiado.getSolCodigo());
            return listaExpLaboral;
        }catch(Exception ex){
            listaExpLaboral = null;
            return null;
        }
        
    }

    public List<EstudioColegiado> getListarEstudiosCol(){

        try{
            listaEstudiosColegiado = new ArrayList<EstudioColegiado>();
            listaEstudiosColegiado = delegadoEstudioColegiado.listaEstudioColegiado(colegiado.getSolCodigo());
            return listaEstudiosColegiado;
        }catch(Exception ex){
            listaEstudiosColegiado = null;
            return null;
        }
    }
    
    //LISTAMOS LOS FAMILIARES DEL COLEGIADO

    public List<VinculoColegiado> getListarVinculos(){
        try{
            listaVinculosColegiado = new ArrayList<VinculoColegiado>();
            listaVinculosColegiado = delegadoFamiliar.listaVinculos(colegiado.getSolCodigo());
            return listaVinculosColegiado;
        }catch(Exception ex){
            listaEstudiosColegiado = null;
            return null;
        }
    }

    //LISTAMOS LOS DEPORTES QUE PRACTICA UN COLEGIADO

    public List<ColegiadoDeporte> getListaDeporte(){

        try{
            listaDeportesColegiado = new ArrayList<ColegiadoDeporte>();
            listaDeportesColegiado = delegadoDeporte.listaColDeporte(colegiado.getSolCodigo());
            return listaDeportesColegiado;
        }catch(Exception ex){
            listaEstudiosColegiado = null;
            return null;
        }
    }

    public String buscarCol(){

        inicializa();
        return "ir_a_buscarCol";
    }

    // REPORTES POR COLEGIADOS TRANFERIDOS
    public List<Colegiado> ListaColTranferidosOrdenCIP(){

        listaColegiadosTransferidos = null;
        listaColegiadosTransferidos = delegadoColegiado.listaTranferidosOrdenCIP();
        cantidad = listaColegiadosTransferidos.size();
        return listaColegiadosTransferidos;
    }

    public List<Colegiado> ListaColTranferidosOrdenApellidos(){

        listaColegiadosTransferidos = null;
        listaColegiadosTransferidos = delegadoColegiado.listaTranferidosOrdenApellidos();
        cantidad = listaColegiadosTransferidos.size();
        return listaColegiadosTransferidos;
    }

    public List<Colegiado> ListaColTranferidosOrdenFechaIncrip(){

        listaColegiadosTransferidos = null;
        listaColegiadosTransferidos = delegadoColegiado.listaTranferidosOrdenFechaIncrip();
        cantidad = listaColegiadosTransferidos.size();
        return listaColegiadosTransferidos;
    }

    public String listarColegiadosTransferidos(){

        if(seleccion == null){
            seleccion = 1;
        }

        switch(seleccion){

            case 1 : ListaColTranferidosOrdenCIP();
                     break;
            case 2 : ListaColTranferidosOrdenApellidos();
                     break;
            case 3 : ListaColTranferidosOrdenFechaIncrip();
                     break;
        }
        return null;
    }

    //LISTA DE COLEGIADO ORDINARIOS ORDENADOS POR APELLIDO PATERNO
    public List<PersonaNatural> listaColegiadosOrdinariosOrdenApellidos(){

        listaPersonas = new ArrayList<PersonaNatural>();
        listaPersonas = delegadoColegiado.listaColegiadosOrdinariosOrdenApellidos(condicion);
        cantidad = listaPersonas.size();
        return listaPersonas;
//        listaCol = new ArrayList<Colegiado>();
//        listaCol = delegadoColegiado.listaColegiadosOrdinariosOrdenApellidos(condicion);
//        cantidad = listaCol.size();
//        return listaCol;
    }

    
    //COLEGIADOS ORDINARIOS POR ORDEN DE CIP
    public List<PersonaNatural> listaColegiadosOrdinariosOrdenCIP(){

        listaPersonas = new ArrayList<PersonaNatural>();
        listaPersonas = delegadoColegiado.listaColegiadosOrdinariosOrdenCIP(condicion);
        cantidad = listaPersonas.size();
        return listaPersonas;
    }

      //COLEGIADOS ORDINARIOS POR ORDEN FECHA APORTE
    public List<PersonaNatural> listaColegiadosOrdinariosOrdenFechaAporte(){

        listaPersonas = new ArrayList<PersonaNatural>();
        listaPersonas = delegadoColegiado.listaColegiadosOrdinariosOrdenFechaAporte(condicion);
        cantidad = listaPersonas.size();
        return listaPersonas;
    }

    public List<PersonaNatural> listaColegiadosOrdinariosOrdenFechaIncorp(){

        listaPersonas = new ArrayList<PersonaNatural>();
        listaPersonas = delegadoColegiado.listaColegiadosOrdinariosOrdenFechaIncorp(condicion);
        cantidad = listaPersonas.size();
        return listaPersonas;
    }
    //COLEGIADOS ORDINARIOS POR ORDEN FECHA INCORPORACION
    

    public String listaColegiadosOrdinarios(){

        condicion = habilitado;
        if(seleccion==null){
            seleccion = 1;
        }

        switch(seleccion){

            case 1 : listaColegiadosOrdinariosOrdenCIP();
                     break;

            case 2 : listaColegiadosOrdinariosOrdenApellidos();
                     break;
                        
            case 3 : listaColegiadosOrdinariosOrdenFechaAporte();
                     break;
                        
            case 4 : listaColegiadosOrdinariosOrdenFechaIncorp();
                     break;                        
        }
        return null;
    }

    //LISTA DE COLEGIADO TEMPORALES ORDENADOS POR APELLIDO PATERNO O NRO CIP
    
    public List<Colegiado> ListaColegiadosTemporalesOrdenCIP(){

        listaColegiadosTemporales = null;
        listaColegiadosTemporales = delegadoColegiado.listaColegiadosTemporalesOrdenCIP();
        cantidad = listaColegiadosTemporales.size();
        return listaColegiadosTemporales;
    }

    public List<Colegiado> ListaColegiadosTemporalesOrdenApellidos(){

        listaColegiadosTemporales = null;
        listaColegiadosTemporales = delegadoColegiado.listaColegiadosTemporalesOrdenApellidos();
        cantidad = listaColegiadosTemporales.size();
        return listaColegiadosTemporales;
    }

    public List<Colegiado> ListaColegiadosTemporalesOrdenFechaIncorp(){

        listaColegiadosTemporales = null;
        listaColegiadosTemporales = delegadoColegiado.listaColegiadosTemporalesOrdenFechaIncorp();
        cantidad = listaColegiadosTemporales.size();
        return listaColegiadosTemporales;
    }

    public List<Colegiado> ListaColegiadosTemporalesOrdenCarnetExt(){

        listaColegiadosTemporales = null;
        listaColegiadosTemporales = delegadoColegiado.listaColegiadosTemporalesOrdenCarnetExt();
        cantidad = listaColegiadosTemporales.size();
        return listaColegiadosTemporales;
    }

    public String listarColegiadosTemporales(){

        if(seleccion == null){
            seleccion = 1;
        }
        switch(seleccion){

            case 1 : ListaColegiadosTemporalesOrdenCIP();
                     break;
            case 2 : ListaColegiadosTemporalesOrdenCarnetExt();
                     break;
            case 3 : ListaColegiadosTemporalesOrdenApellidos();
                     break;
            case 4 : ListaColegiadosTemporalesOrdenFechaIncorp();
                     break;
        }
        return null;
    }

    //LISTA DE COLEGIADOS EXTERNOS
    public List<Colegiado> ListaColegiadosExternosOrdenCIP(){

        listaColegiadosExternos = null;
        listaColegiadosExternos = delegadoColegiado.listaColegiadosExternosOrdenCIP();
        cantidad = listaColegiadosExternos.size();
        return listaColegiadosExternos;
    }

    public List<Colegiado> ListaColegiadosExternosOrdenApellidos(){

        listaColegiadosExternos = null;
        listaColegiadosExternos = delegadoColegiado.listaColegiadosExternosOrdenApellidos();
        cantidad = listaColegiadosExternos.size();
        return listaColegiadosExternos;
    }

    public List<Colegiado> ListaColegiadosExternosOrdenDNI(){

        listaColegiadosExternos = null;
        listaColegiadosExternos = delegadoColegiado.listaColegiadosExternosOrdenDNI();
        cantidad = listaColegiadosExternos.size();
        return listaColegiadosExternos;
    }

    public String listarColegiadosExternos(){

        if(seleccion==null){
            seleccion = 1;
        }
        switch(seleccion){

            case 1 : ListaColegiadosExternosOrdenCIP();
                     break;
            case 2 : ListaColegiadosExternosOrdenDNI();
                     break;
            case 3 : ListaColegiadosExternosOrdenApellidos();
                     break;
        }
        return null;
    }

    //LISTA COLEGIADOS POR DEPORTE

    public List<ColegiadoDeporte> ListaColegiadoDeportesOrdenCip(){

        listaDeportes = new ArrayList<ColegiadoDeporte>();
        listaDeportes = delegadoDeporte.listaColegiadoDeportesOrdenCIP(deporte.getDepCodigo());
        cantidad = listaDeportes.size();
        return listaDeportes;
    }

    public List<ColegiadoDeporte> ListaColegiadoDeportesOrdenApellidos(){

        listaDeportes = new ArrayList<ColegiadoDeporte>();
        listaDeportes = delegadoDeporte.listaColegiadoDeportesOrdenApellidos(deporte.getDepCodigo());
        cantidad = listaDeportes.size();
        return listaDeportes;
    }

    public List<ColegiadoDeporte> ListaColegiadoDeportesOrdenDeporte(){

        listaDeportes = new ArrayList<ColegiadoDeporte>();
        listaDeportes = delegadoDeporte.listaColegiadoDeportesOrdenDeporte(deporte.getDepCodigo());
        cantidad = listaDeportes.size();
        return listaDeportes;
    }

    public List<ColegiadoDeporte> ListaColegiadoDeportesOrdenNivel(){

        listaDeportes = new ArrayList<ColegiadoDeporte>();
        listaDeportes = delegadoDeporte.listaColegiadoDeportesOrdenNivel(deporte.getDepCodigo());
        cantidad = listaDeportes.size();
        return listaDeportes;
    }

    public List<ColegiadoDeporte> ListaColegiadoDeportesSoloSancionados(){

        listaDeportes = new ArrayList<ColegiadoDeporte>();
        listaDeportes = delegadoDeporte.listaColegiadoDeportesSoloSancionados();
        cantidad = listaDeportes.size();
        return listaDeportes;
    }

    public String relacionDeportesCol(){

        if(seleccion == null){
            seleccion = 1;
        }
        switch(seleccion){
            
            case 1: ListaColegiadoDeportesOrdenCip();
                    break;
            case 2: ListaColegiadoDeportesOrdenApellidos();
                    break;                    
            case 3: ListaColegiadoDeportesOrdenDeporte();
                    break;
            case 4: ListaColegiadoDeportesOrdenNivel();
                    break;
            case 5: ListaColegiadoDeportesSoloSancionados();
                    break;
        }

        return null;
    }
   

    public String buscaDeportesCol(){

        try{
            colegiado = new Colegiado();
            Integer cifras = codigoCIP.length();
             if(cifras<3){
                 codigoCIP = "0000"+ codigoCIP;
             }else{
                   if(cifras<4){
                       codigoCIP = "000"+codigoCIP;
                   }else{
                       if(cifras<5){
                           codigoCIP = "00"+codigoCIP;
                       }else{
                           if(cifras<6){
                              codigoCIP = "0"+codigoCIP;
                           }
                       }
                   }
             }
            colegiado = delegadoColegiado.buscaPorCip(codigoCIP);
            if(colegiado.getColnumeroCip()!=null){
                codigoCIP = null;
                listaColDep();
                activo = true;
                return null;
            }else{
                noHallado = true;
                return null;
            }
        }catch(Exception ex){
            
            return null;
        }       
    }

     //SANCIONAR COLEGIADO POR DEPORTE
    public List<ColegiadoDeporte> listaColDep(){
        
        listaDep = new ArrayList<ColegiadoDeporte>();
        listaDep = delegadoDeporte.listaColDeporte(colegiado.getSolCodigo());
        return listaDep;
    }

    public String sancionarDep(){
       
        return "sancionarDep";

    }

    public String guardaSancionDep(){

       colDeporte.setColCodigo(colegiado);
       colDeporte.setCdeSancion(true);
//       delegadoDeporte.actualizaSancion(colDeporte.getCdeSancion(), colDeporte.getCde_fechaIniSancion(), colDeporte.getCde_fechaFinSancion(), colDeporte.getCdeCodigo());
      delegadoDeporte.edit(colDeporte);
      colDeporte = new ColegiadoDeporte();
      mostrarMensaje("INFO: ", "Sanción registrada satisfactoriamente...", FacesMessage.SEVERITY_INFO);
       return "retornar";
    }

    public String quitarSancion(){

        colDeporte.setColCodigo(colegiado);
        colDeporte.setCde_fechaIniSancion(null);
        colDeporte.setCde_fechaFinSancion(null);
        colDeporte.setCdeSancion(false);
        return null;
    }

    //QUITAR LA SANCION EN DEPORTES CON TAREA

    public void removerSancionDeporte(){

        try{
            listaDep = new ArrayList<ColegiadoDeporte>();
            listaDep = delegadoDeporte.findAll();
            String DATE_FORMAT = "dd/MM/yyyy";
            SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);

            System.out.println("lista Deporte : "+listaDep.size());
            for(ColegiadoDeporte colDep : listaDep){

                String f1 = sdf.format(colDep.getCde_fechaFinSancion());
                String f2 = sdf.format(new Date());
                if(f1.equals(f2)){

                    colDep.setCde_fechaIniSancion(null);
                    colDep.setCde_fechaFinSancion(null);
                    colDep.setCdeSancion(false);
                    delegadoDeporte.edit(colDeporte);
                }
            }

           
        }catch(Exception ex){
            System.out.println("error : "+ex);
        }
    }

    //LISTADO DE COLEGIADOS FALLECIDOS

    public List<Colegiado> ListaFallecidosOrdenCIP(){

        listaColegiadosFallecidos = null;
        listaColegiadosFallecidos = delegadoColegiado.listaFallecidosOrdenCIP();
        cantidad = listaColegiadosFallecidos.size();
        return listaColegiadosFallecidos;
    }

    public List<Colegiado> ListaFallecidosOrdenApellidos(){

        listaColegiadosFallecidos = null;
        listaColegiadosFallecidos = delegadoColegiado.listaFallecidosOrdenApellidos();
        cantidad = listaColegiadosFallecidos.size();
        return listaColegiadosFallecidos;
    }

    public List<Colegiado> ListaFallecidosOrdenFechaFallecio(){

        listaColegiadosFallecidos = null;
        listaColegiadosFallecidos = delegadoColegiado.listaFallecidosOrdenFechaFallecio();
        cantidad = listaColegiadosFallecidos.size();
        return listaColegiadosFallecidos;
    }

    public List<Colegiado> ListaFallecidosOrdenFechaIncorp(){

        listaColegiadosFallecidos = null;
        listaColegiadosFallecidos = delegadoColegiado.listaFallecidosOrdenFechaIncorp();
        cantidad = listaColegiadosFallecidos.size();
        return listaColegiadosFallecidos;
    }

    public String listaColegiadoFallecido(){

        if(seleccion == null){

            seleccion = 1;
        }

        switch(seleccion){

            case 1: ListaFallecidosOrdenCIP();                   
                    break;
            case 2: ListaFallecidosOrdenApellidos();                    
                    break;
            case 3: ListaFallecidosOrdenFechaIncorp();
                    break;
            case 4: ListaFallecidosOrdenFechaFallecio();                    
                    break;
        }

        return null;
    }

    // LISTADO DE COLEGIADOS VITALICIOS

    public List<Colegiado> ListaVitaliciosOrdenCIP(){

        listaColegiadosVitalicios = null;
        listaColegiadosVitalicios = delegadoColegiado.listaVitaliciosOrdenCip();
        cantidad = listaColegiadosVitalicios.size();
        return listaColegiadosVitalicios;
    }

    public List<Colegiado> ListaVitaliciosOrdenApellidos(){

        listaColegiadosVitalicios = null;
        listaColegiadosVitalicios = delegadoColegiado.listaVitaliciosOrdenApellidos();
        cantidad = listaColegiadosVitalicios.size();
        return listaColegiadosVitalicios;
    }

    public List<Colegiado> ListaVitaliciosOrdenFechaIncorporacion(){

        listaColegiadosVitalicios = null;
        listaColegiadosVitalicios = delegadoColegiado.listaVitaliciosOrdenFechaIncorporacion();
        cantidad = listaColegiadosVitalicios.size();
        return listaColegiadosVitalicios;
    }


    public String listaColegiadosVitalicios(){

        if(seleccion == null){
            seleccion = 1;
        }
        switch(seleccion){

            case 1 : ListaVitaliciosOrdenCIP();                     
                     break;
            case 2 : ListaVitaliciosOrdenApellidos();                     
                     break;
            case 3 : ListaVitaliciosOrdenFechaIncorporacion();                     
                     break;
        }

        return null;
    }

    //LISTADO DE COLEGIADOS POR FECHAS

    public Date getFecha1() {
        return fecha1;
    }

    public void setFecha1(Date fecha1) {
        this.fecha1 = fecha1;
    }

    public Date getFecha2() {
        return fecha2;
    }

    public void setFecha2(Date fecha2) {
        this.fecha2 = fecha2;
    }

    public String getRangoFechas() {
        return rangoFechas;
    }

    public void setRangoFechas(String rangoFechas) {
        this.rangoFechas = rangoFechas;
    }

    public List<DireccionPersona> ListaColPorFechas(Date fechaIni, Date fechaFin){

        lista = null;
        return lista = delegadoColegiado.listaPorFechas(fechaIni, fechaFin);
    }

    //LISTA DE COLEGIADO POR FECHA DE INCORPORACION
    public List<Colegiado> listaColegiadosFechaIncorpOrdenCIP(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaColegiadosFechaIncorpOrdenCIP(fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public List<Colegiado> listaColegiadosFechaIncorpOrdenApellidos(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaColegiadosFechaIncorpOrdenApellidos(fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public List<Colegiado> listaColegiadosFechaIncorpOrdenTipoCol(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaColegiadosFechaIncorpOrdenTipoCol(fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public List<Colegiado> listaColegiadosFechaIncorpOrdenFecha(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaColegiadosFechaIncorpOrdenFecha(fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public List<Colegiado> listaColegiadoPorIncorpTodosLosCapitulos(){

        listaColegiadosFechas =new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaColegiadoPorFechaIncorpTodosLosCapitulos(fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public List<Colegiado> listaColegiadoPorIncorpyCapitulo(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaColegiadoPorFechaIncorpyCapitulo(capitulo.getCapCodigo(), fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    //LISTA DE COLEGIADO POR FECHA DE APORTE
    public List<Colegiado> listaColegiadosFechaAporteOrdenCIP(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaColegiadosFechaAporteOrdenCIP(fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public List<Colegiado> listaColegiadosFechaAporteOrdenApellidos(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaColegiadosFechaAporteOrdenApellidos(fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public List<Colegiado> listaColegiadosFechaAporteOrdenTipoCol(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaColegiadosFechaAporteOrdenTipoCol(fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public List<Colegiado> listaColegiadosFechaAporteOrdenFecha(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaColegiadosFechaAporteOrdenFecha(fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public List<Colegiado> listaColegiadoPorAporteTodosLosCapitulos(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaColegiadoPorFechaAporteTodosLosCapitulos(fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public List<Colegiado> listaColegiadoPorAporteyCapitulo(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaColegiadoPorFechaAporteyCapitulo(capitulo.getCapCodigo(), fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    //LISTA DE COLEGIADO POR FECHA DE NACIMIENTO
    public List<Colegiado> listaColegiadosFechaNacOrdenCIP(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaColegiadosFechaNacimientoOrdenCIP(fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public List<Colegiado> listaColegiadosFechaNacOrdenApellidos(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaColegiadosFechaNacimientoOrdenApellidos(fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public List<Colegiado> listaColegiadosFechaNacOrdenTipoCol(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaColegiadosFechaNacimientoOrdenTipoCol(fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public List<Colegiado> listaColegiadosFechaNacOrdenFecha(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaColegiadosFechaNacimientoOrdenFecha(fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public List<Colegiado> listaColegiadoPorFechaNacTodosLosCapitulos(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaColegiadoPorFechaNacimientoTodosLosCapitulos(fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public List<Colegiado> listaColegiadoPorFechaNacyCapitulo(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaColegiadoPorFechaNacimientoyCapitulo(capitulo.getCapCodigo(), fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    //LISTA DE COLEGIADO POR FECHA DE HABILIDAD

    public List<Colegiado> listaPorFechaHabilidadOrdenCIP(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaPorFechaHabilidadOrdenCIP(fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public List<Colegiado> listaPorFechaHabilidadOrdenApellido(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaPorFechaHabilidadOrdenApellido(fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public List<Colegiado> listaPorFechaHabilidadOrdenTipo(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaPorFechaHabilidadOrdenTipo(fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public List<Colegiado> listaPorFechaHabilidadOrdenFecha(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaPorFechaHabilidadOrdenFecha(fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public List<Colegiado> listaColegiadoPorHabilidadTodosLosCapitulos(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaColegiadoPorHabilidadTodosLosCapitulos(fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public List<Colegiado> listaColegiadoPorHabilidadyCapitulo(){

        listaColegiadosFechas = new ArrayList<Colegiado>();
        listaColegiadoEspecialidad = null;
        listaColegiadosFechas = delegadoColegiado.listaColegiadoPorHabilidadyCapitulo(capitulo.getCapCodigo(), fecha1, fecha2);
        cantidad = listaColegiadosFechas.size();
        return listaColegiadosFechas;
    }

    public String listarColegiadoPorFechas(){

     try{
        if(selecFecha == null){
            selecFecha = 1;
        }
       switch(selecFecha){

           case 1 : if(seleccion == null){
                           seleccion = 1;
                       }
                       switch(seleccion){

                           case 1 : listaColegiadosFechaNacOrdenCIP();
                                    break;
                           case 2 : listaColegiadosFechaNacOrdenApellidos();
                                    break;
                           case 3 : listaColegiadosFechaNacOrdenTipoCol();
                                    break;
                           case 4 : listaColegiadosFechaNacOrdenFecha();
                                    break;
                           case 5 : if(capitulo == null){
                                        listaColegiadoPorFechaNacTodosLosCapitulos();
                                    }else{
                                        listaColegiadoPorFechaNacyCapitulo();
                                    }
                                    break;
                       }
                       break;
           case 2 :    if(seleccion == null){
                           seleccion = 1;
                       }
                       switch(seleccion){

                           case 1 : listaColegiadosFechaAporteOrdenCIP();
                                    break;
                           case 2 : listaColegiadosFechaAporteOrdenApellidos();
                                    break;
                           case 3 : listaColegiadosFechaAporteOrdenTipoCol();
                                    break;
                           case 4 : listaColegiadosFechaAporteOrdenFecha();
                                    break;
                           case 5 : if(capitulo == null){
                                        listaColegiadoPorAporteTodosLosCapitulos();
                                    }else{
                                        listaColegiadoPorAporteyCapitulo();
                                    }
                                    break;
                       }
                       break;
           case 3 :    if(seleccion == null){
                           seleccion = 1;
                       }
                       switch(seleccion){

                           case 1 : listaColegiadosFechaIncorpOrdenCIP();
                                    break;
                           case 2 : listaColegiadosFechaIncorpOrdenApellidos();
                                    break;
                           case 3 : listaColegiadosFechaIncorpOrdenTipoCol();
                                    break;
                           case 4 : listaColegiadosFechaIncorpOrdenFecha();
                                    break;
                           case 5 : if(capitulo == null){
                                        listaColegiadoPorIncorpTodosLosCapitulos();
                                    }else{
                                        listaColegiadoPorIncorpyCapitulo();
                                    }
                                    break;
                       }
                       break;
           case 4 : if(seleccion == null){
                        seleccion = 1;
                     }
                     switch(seleccion){
                           case 1 : listaPorFechaHabilidadOrdenCIP();
                                    break;
                           case 2 : listaPorFechaHabilidadOrdenApellido();
                                    break;
                           case 3 : listaPorFechaHabilidadOrdenTipo();
                                    break;
                           case 4 : listaPorFechaHabilidadOrdenFecha();
                                    break;
                           case 5 : if(capitulo == null){
                                        listaColegiadoPorHabilidadTodosLosCapitulos();
                                    }else{
                                        listaColegiadoPorHabilidadyCapitulo();
                                    }
                                    break;
                     }break;
       }

       oculto = true;
       SimpleDateFormat sdf1 = new SimpleDateFormat("dd/MM/yyyy");
       SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy");
       rangoFechas = sdf1.format(fecha1)+ " - "+sdf2.format(fecha2);
       return null;
     }catch(Exception ex){
         oculto = false;
         return null;
     }
    }

    //LISTADO DE COLEGIADOS POR FECHA DE INCORPORACION

    private List<Colegiado> listaColPorFechaIncorporacion;

    public List<Colegiado> getListaColPorFechaIncorporacion() {
        return listaColPorFechaIncorporacion;
    }

    public void setListaColPorFechaIncorporacion(List<Colegiado> listaColPorFechaIncorporacion) {
        this.listaColPorFechaIncorporacion = listaColPorFechaIncorporacion;
    }

    public List<Colegiado> ListaColPorFechaIncorp(){

        listaColPorFechaIncorporacion = null;
        listaColPorFechaIncorporacion = delegadoColegiado.listaPorFechaIncorp(fechaIni, fechaFin);
        cantidad = listaColPorFechaIncorporacion.size();
        return listaColPorFechaIncorporacion;
    }

    public String listarColPorFechaIncorp(){

       ListaColPorFechaIncorp();
        System.out.println(listaColPorFechaIncorporacion);

       fecha1 = fechaIni;
       fecha2 = fechaFin;

       SimpleDateFormat sdf1 = new SimpleDateFormat("dd/MM/yyyy");
       SimpleDateFormat sdf2 = new SimpleDateFormat("dd/MM/yyyy");
       rangoFechas = sdf1.format(fecha1)+ " - "+sdf2.format(fecha2);

       fechaIni=null;
       fechaFin=null;
       return null;
    }

    //LISTADO GENERAL DE COLEGIADOS CON O SIN DIRECCION


    public List<DireccionPersona> getListaColegiadosConSinDireccion(){

        return delegadoColegiado.listadoGeneralColegiados();
    }

    public List<PersonaNatural> getlistaColegiadoGeneral(){

        return delegadoColegiado.listaPersonasGeneral();
    }
    
    //LISTADO GENERAL DE COLEGIADOS POR UNIVERSIDAD
    private Universidad univ,uni;
    private List ListarColUniv;
  
    public Universidad getUni() {
        return uni;
    }

    public void setUni(Universidad uni) {
        this.uni = uni;
    }

    public List getListarColUniv() {
        return ListarColUniv;
    }

    public void setListarColUniv(List ListarColUniv) {
        this.ListarColUniv = ListarColUniv;
    }
    
    public Universidad getUniv() {
        return univ;
    }

    public void setUniv(Universidad univ) {
        this.univ = univ;
    }
    
    public List<Colegiado> ListaColPorUniversidadOrdenCip(){

        ListarColUniv = null;
        ListarColUniv = delegadoColegiado.listaColegiadosPorUniversidadOrdenCip(univ.getUniCodigo());
        cantidad = ListarColUniv.size();
        return ListarColUniv;
    }

    public List<Colegiado> ListaColPorUniversidadOrdenApellidos(){

        ListarColUniv = null;
        ListarColUniv = delegadoColegiado.listaColegiadosPorUniversidadOrdenApellidos(univ.getUniCodigo());
        cantidad = ListarColUniv.size();
        return ListarColUniv;
    }

    public List<Colegiado> ListaColPorUniversidadOrdenTipoCol(){

        ListarColUniv = null;
        ListarColUniv = delegadoColegiado.listaColegiadosPorUniversidadOrdenTipoCol(univ.getUniCodigo());
        cantidad = ListarColUniv.size();
        return ListarColUniv;
    }

    public String listarColPorUniv(){

        if(seleccion == null){

            seleccion = 1;
        }
        switch(seleccion){

            case 1: ListaColPorUniversidadOrdenCip();                    
                    break;
            case 2: ListaColPorUniversidadOrdenApellidos();                    
                    break;
            case 3: ListaColPorUniversidadOrdenTipoCol();                    
                    break;
        }
        return null;
    }

    //LISTAR COLEGIADOS POR CAPITULOS

    public List<ColegiadoEspecialidad> ListaColPorCapituloOrdenCip(){

        listaColPorCapitulo = null;
        listaColPorCapitulo = delegadoColESp.listaColegiadoPorCapituloOrdenCIP(capitulo.getCapCodigo());
        cantidad = listaColPorCapitulo.size();
        return listaColPorCapitulo;
    }

    public List<ColegiadoEspecialidad> ListaColPorCapituloOrdenApellidos(){

        listaColPorCapitulo = null;
        listaColPorCapitulo = delegadoColESp.listaColegiadoPorCapituloOrdenApellidos(capitulo.getCapCodigo());
        cantidad = listaColPorCapitulo.size();
        return listaColPorCapitulo;
    }

    public List<ColegiadoEspecialidad> ListaColPorCapituloOrdenFechaAporte(){

        listaColPorCapitulo = null;
        listaColPorCapitulo = delegadoColESp.listaColegiadoPorCapituloOrdenFechaAporte(capitulo.getCapCodigo());
        cantidad = listaColPorCapitulo.size();
        return listaColPorCapitulo;
    }

    public List<ColegiadoEspecialidad> ListaColPorCapituloOrdenTipoCol(){

        listaColPorCapitulo = null;
        listaColPorCapitulo = delegadoColESp.listaColegiadoPorCapituloOrdenTipoCol(capitulo.getCapCodigo());
        cantidad = listaColPorCapitulo.size();
        return listaColPorCapitulo;
    }

    public String listarColPorCap(){

        if(seleccion == null){
            seleccion = 1;
        }
        switch(seleccion){

            case 1 : ListaColPorCapituloOrdenCip();
                     break;
            case 2 : ListaColPorCapituloOrdenApellidos();
                     break;
            case 3 : ListaColPorCapituloOrdenTipoCol();
                     break;
            case 4 : ListaColPorCapituloOrdenFechaAporte();
                     break;
        }
 
        return null;
    }


    //LISTA DE COLEGIADOS NUEVOS POR FECHA DE APORTE

    public List<Colegiado> listaColegiadosNuevosPorFechaAporteOrdenCIP(){

        listaColegiados = new ArrayList<Colegiado>();
        listaColegiados = delegadoColegiado.listaColegiadosNuevosPorFechaAporteOrdenCIP(fecha1, fecha2);
        cantidad = listaColegiados.size();
        return listaColegiados;
    }

    public List<Colegiado> listaColegiadosNuevosPorFechaAporteOrdenApellidos(){

        listaColegiados = new ArrayList<Colegiado>();
        listaColegiados = delegadoColegiado.listaColegiadosNuevosPorFechaAporteOrdenApellidos(fecha1, fecha2);
        cantidad = listaColegiados.size();
        return listaColegiados;
    }

    public List<Colegiado> listaColegiadosNuevosPorFechaAporteOrdenFechaAporte(){

        listaColegiados = new ArrayList<Colegiado>();
        listaColegiados = delegadoColegiado.listaColegiadosNuevosPorFechaAporteOrdenFechaAporte(fecha1, fecha2);
        cantidad = listaColegiados.size();
        return listaColegiados;
    }

    public List<Colegiado> listaColegiadosNuevosPorFechaAporteOrdenFechaIncorp(){

        listaColegiados = new ArrayList<Colegiado>();
        listaColegiados = delegadoColegiado.listaColegiadosNuevosPorFechaAporteOrdenIncorp(fecha1, fecha2);
        cantidad = listaColegiados.size();
        return listaColegiados;
    }

    //LISTA DE COLEGIADOS NUEVOS POR FECHA INCORPORACION

    public List<Colegiado> listaColegiadosNuevosPorFechaIncorpOrdenCIP(){

        listaColegiados = new ArrayList<Colegiado>();
        listaColegiados = delegadoColegiado.listaColegiadosNuevosPorFechaIncorpOrdenCIP(fecha1, fecha2);
        cantidad = listaColegiados.size();
        return listaColegiados;
    }

    public List<Colegiado> listaColegiadosNuevosPorFechaIncorpOrdenApellidos(){

        listaColegiados = new ArrayList<Colegiado>();
        listaColegiados = delegadoColegiado.listaColegiadosNuevosPorFechaIncorpOrdenApellidos(fecha1, fecha2);
        cantidad = listaColegiados.size();
        return listaColegiados;
    }

    public List<Colegiado> listaColegiadosNuevosPorFechaIncorpOrdenFechaAporte(){

        listaColegiados = new ArrayList<Colegiado>();
        listaColegiados = delegadoColegiado.listaColegiadosNuevosPorFechaIncorpOrdenFechaAporte(fecha1, fecha2);
        cantidad = listaColegiados.size();
        return listaColegiados;
    }

    public List<Colegiado> listaColegiadosNuevosPorFechaIncorpOrdenFechaIncorp(){

        listaColegiados = new ArrayList<Colegiado>();
        listaColegiados = delegadoColegiado.listaColegiadosNuevosPorFechaIncorpOrdenIncorp(fecha1, fecha2);
        cantidad = listaColegiados.size();
        return listaColegiados;
    }

    //LISTA DE COLEGIADOS NUEVOS POR FECHA INCORPORACION

    public List<ColegiadoEspecialidad> listaColegiadosNuevosPorCapituloOrdenCIP(){

        listaColegiadoEspecialidad = new ArrayList<ColegiadoEspecialidad>();
        listaColegiadoEspecialidad = delegadoColegiado.listaColegiadosNuevosPorCapituloOrdenCIP(fecha1,fecha2,capitulo);
        cantidad = listaColegiadoEspecialidad.size();
        return listaColegiadoEspecialidad;
    }

    public List<ColegiadoEspecialidad> listaColegiadosNuevosPorCapituloOrdenApellidos(){

        listaColegiadoEspecialidad = new ArrayList<ColegiadoEspecialidad>();
        listaColegiadoEspecialidad = delegadoColegiado.listaColegiadosNuevosPorCapituloOrdenApellidos(fecha1,fecha2,capitulo);
        cantidad = listaColegiadoEspecialidad.size();
        return listaColegiadoEspecialidad;
    }

    public List<ColegiadoEspecialidad> listaColegiadosNuevosPorCapituloOrdenFechaAporte(){

        listaColegiadoEspecialidad = new ArrayList<ColegiadoEspecialidad>();
        listaColegiadoEspecialidad = delegadoColegiado.listaColegiadosNuevosPorCapituloOrdenFechaAporte(fecha1,fecha2,capitulo);
        cantidad = listaColegiadoEspecialidad.size();
        return listaColegiadoEspecialidad;
    }

    public List<ColegiadoEspecialidad> listaColegiadosNuevosPorCapituloOrdenFechaIncorp(){

        listaColegiadoEspecialidad = new ArrayList<ColegiadoEspecialidad>();
        listaColegiadoEspecialidad = delegadoColegiado.listaColegiadosNuevosPorCapituloOrdenFechaIncorp(fecha1,fecha2,capitulo);
        cantidad = listaColegiadoEspecialidad.size();
        return listaColegiadoEspecialidad;
    }

    //LISTA DE COLEGIADOS NUEVOS POR FECHA INCORPORACION

    public List<ColegiadoEspecialidad> listaColegiadosNuevosTodosCapituloOrdenCIP(){

        listaColegiadoEspecialidad = new ArrayList<ColegiadoEspecialidad>();
        listaColegiadoEspecialidad = delegadoColegiado.listaColegiadosNuevosTodosCapituloOrdenCIP(fecha1, fecha2);
        cantidad = listaColegiadoEspecialidad.size();
        return listaColegiadoEspecialidad;
    }

    public List<ColegiadoEspecialidad> listaColegiadosNuevosTodosCapituloOrdenApellidos(){

        listaColegiadoEspecialidad = new ArrayList<ColegiadoEspecialidad>();
        listaColegiadoEspecialidad = delegadoColegiado.listaColegiadosNuevosTodosCapituloOrdenApellidos(fecha1, fecha2);
        cantidad = listaColegiadoEspecialidad.size();
        return listaColegiadoEspecialidad;
    }

    public List<ColegiadoEspecialidad> listaColegiadosNuevosTodosCapituloOrdenFechaAporte(){

        listaColegiadoEspecialidad = new ArrayList<ColegiadoEspecialidad>();
        listaColegiadoEspecialidad = delegadoColegiado.listaColegiadosNuevosTodosCapituloOrdenFechaAporte(fecha1, fecha2);
        cantidad = listaColegiadoEspecialidad.size();
        return listaColegiadoEspecialidad;
    }

    public List<ColegiadoEspecialidad> listaColegiadosNuevosTodosCapituloOrdenFechaIncorp(){

        listaColegiadoEspecialidad = new ArrayList<ColegiadoEspecialidad>();
        listaColegiadoEspecialidad = delegadoColegiado.listaColegiadosNuevosTodosCapituloOrdenFechaIncorp(fecha1, fecha2);
        cantidad = listaColegiadoEspecialidad.size();
        return listaColegiadoEspecialidad;
    }


    //LISTA DE COLEGIADOS NUEVOS

    public String listarColegiadosNuevos(){

       try{
        if(combo1==0){
            combo1 = 1;
        }
        if(combo2==0){
            combo2 = 1;
        }
        listaColegiados = null;
        listaColegiadoEspecialidad = null;
        switch(combo1){
            case 1 :
                activo = true;
                switch(combo2){
                    case 1 : listaColegiadosNuevosPorFechaAporteOrdenCIP();
                             break;
                    case 2 : listaColegiadosNuevosPorFechaAporteOrdenApellidos();
                             break;
                    case 3 : listaColegiadosNuevosPorFechaAporteOrdenFechaAporte();
                             break;
                    case 4 : listaColegiadosNuevosPorFechaAporteOrdenFechaIncorp();
                             break;
                }
            case 2 :
                activo = true;
                switch(combo2){
                    case 1 : listaColegiadosNuevosPorFechaIncorpOrdenCIP();
                             break;
                    case 2 : listaColegiadosNuevosPorFechaIncorpOrdenApellidos();
                             break;
                    case 3 : listaColegiadosNuevosPorFechaIncorpOrdenFechaAporte();
                             break;
                    case 4 : listaColegiadosNuevosPorFechaIncorpOrdenFechaIncorp();
                             break;
                }
            case 3 :
                activo = true;
                switch(combo2){
                    case 1 : listaColegiadosNuevosPorCapituloOrdenCIP();                             
                             break;
                    case 2 : listaColegiadosNuevosPorCapituloOrdenApellidos();                             
                             break;
                    case 3 : listaColegiadosNuevosPorCapituloOrdenFechaAporte();
                             break;
                    case 4 : listaColegiadosNuevosPorCapituloOrdenFechaIncorp();
                             break;
                }
            case 4 :
                activo = true;
                switch(combo2){
                    case 1 : listaColegiadosNuevosTodosCapituloOrdenCIP();
                             break;
                    case 2 : listaColegiadosNuevosTodosCapituloOrdenApellidos();
                             break;
                    case 3 : listaColegiadosNuevosTodosCapituloOrdenFechaAporte();
                             break;
                    case 4 : listaColegiadosNuevosTodosCapituloOrdenFechaIncorp();
                             break; 
                }

        }
       }catch(Exception ex){
           activo = false;
           return null;
       }
        return null;
    }


    //GENERAR GUIA DE REMISION DE PREINSCRITOS

    public String generarGuia(){

        return "ir_a_guia";
    }



    public String agregarOtro(){

        return "agregarOtro";
    }

    public String limpiarGuia(){

        guiaRemision = new GuiaRemision();
        listaDetalleGuia = null;
        activar = false;
        numeroGuiaRemision = null;
        listaPre = null;
        fechaIni = null;
        fechaFin = null;
        return null;

    }

    public String nuevaGuia(){

        detalleGuia = new DetalleGuia();
        listaDetalleGuia = new ArrayList<DetalleGuia>();
        activar = false;
        listaPre = null;
        fechaIni = null;
        fechaFin = null;
        guiaRemision = new GuiaRemision();

        return "agregarOtro";
    }
    
    public String agregarPreinscrito(){

        Long codigoColegiado = preInscripcion.getPerCodigo().getSolCodigo();
        
        persona = new PersonaNatural();
        persona = delegadoNatural.buscaXCodigo(codigoColegiado);
        
        detalleGuia = new DetalleGuia();
        detalleGuia.setColCodigo(persona);

        listaDetalleGuia.add(detalleGuia);       
        //sacamos el seleccionado de la lista de preinscritos
        listaPre.remove(preInscripcion);
        return null;
    }

    public String quitarPreinscrito(){

        listaDetalleGuia.remove(detalleGuia);
        return null;
    }

    public String guardarGuia(){

        try{
           Long guiaRemi;
           guiaRemi = delegadoGuiaRemision.buscaUltimo();

           guiaRemision.setGreCantidad(listaDetalleGuia.size());
           guiaRemision.setGrefechaRegistro(new Date());
           guiaRemision.setGreTipo(1);
           guiaRemision.setGreNumero(guiaRemi+1);
           delegadoGuiaRemision.create(guiaRemision);

           for(int i=0;i<listaDetalleGuia.size();i++){

                DetalleGuia detalleGuiaFinal = new DetalleGuia();
                detalleGuiaFinal.setGreCodigo(guiaRemision);
                detalleGuiaFinal.setColCodigo(listaDetalleGuia.get(i).getColCodigo());
                detalleGuiaFinal.setDgrnroCarnet(listaDetalleGuia.get(i).getDgrnroCarnet());
                delegadoDetalleGuia.create(detalleGuiaFinal);
           }

            activar=true;
            mostrarMensaje("INFO: ", "Guía guardada satisfactoriamente...", FacesMessage.SEVERITY_INFO);
            return null;
        }catch(Exception ex){
            mostrarMensaje("ADVERTENCIA: ", "Se genero un error al registrar la guía...", FacesMessage.SEVERITY_WARN);
            return null;
        }
    }

    public String TerminarGuiaRemision(){

        guiaRemision =  new GuiaRemision();
        detalleGuia = new DetalleGuia();
        
        return null;
    }

    public String iniciarGuia(){

        Long number = guiaRemision.getGreNumero()-1;
        guiaRemision.setGreCantidad(0);
        guiaRemision.setGreTipo(0);
        guiaRemision.setGrefechaRegistro(new Date());
        guiaRemision.setGreNumero(number);
        delegadoGuiaRemision.create(guiaRemision);
        mensaje = true;
        guiaRemision = new GuiaRemision();
        mostrarMensaje("INFO: ", "Guía iniciada satisfactoriamente...", FacesMessage.SEVERITY_INFO);
        return null;
    }

    private boolean mensaje;
    private boolean activar;

    public boolean getMensaje() {
        return mensaje;
    }

    public void setMensaje(boolean mensaje) {
        this.mensaje = mensaje;
    }

    public boolean getActivar() {
        return activar;
    }

    public void setActivar(boolean activar) {
        this.activar = activar;
    }

    private Long numeroGuiaRemision;

    public Long getNumeroGuiaRemision() {
        return numeroGuiaRemision;
    }

    public void setNumeroGuiaRemision(Long numeroGuiaRemision) {
        this.numeroGuiaRemision = numeroGuiaRemision;
    }

    public String buscarNumeroGuia(){

        guiaRemision = new GuiaRemision();
        guiaRemision = delegadoGuiaRemision.buscaGuia(numeroGuiaRemision);

        listaDetalleGuia = null;
        listaDetalleGuia = delegadoDetalleGuia.listaPorGuia(guiaRemision);
        activar = true;
        numeroGuiaRemision = null;
        return null;

    }

    public String editarDetalleGuia(){

        for(DetalleGuia detGuia: listaDetalleGuia){

            detGuia.setGreCodigo(guiaRemision);
            delegadoDetalleGuia.edit(detGuia);
       }

        mensaje = true;
        return null;
    }

    //SUBIOR IMAGENES A LOS COLEGIADOS

    public String subirDocumentos(){

        listaPersonas= null;  //ultimo cambio
        return "subirDocumentos";
    }

    public List<ColegiadoImagen> getlistaDocumentosColegiado(){

        listaDocColegiado = null;
        listaDocColegiado = delegadoColImagen.listaPorColegiado(persona.getColegiado());
        return listaDocColegiado;
    }

    public String removerImagen(){

        try{
            File fichero = new File(colImagen.getCimRuta());

                if(fichero.delete()){
                    mostrarMensaje("Exito: ", "Se elimino el archivo Correctamnete.", FacesMessage.SEVERITY_INFO);
                }else{
                    mostrarMensaje("ERROR:_", "No se pudo eliminar el archivo", FacesMessage.SEVERITY_ERROR);
                }
            delegadoColImagen.remove(colImagen);
            colImagen = new ColegiadoImagen();

            return null;
        }catch(Exception ex){
            System.out.println("error: "+ex.getMessage());
            return null;
        }
    }
    // subir archivo

    private UploadedFile upFile;
    boolean rendSuccess = false;
    boolean rendFailure = false;
    private String dirImagen;

    public boolean isRendFailure() {
        return rendFailure;
    }

    public void setRendFailure(boolean rendFailure) {
        this.rendFailure = rendFailure;
    }

    public boolean isRendSuccess() {
        return rendSuccess;
    }

    public void setRendSuccess(boolean rendSuccess) {
        this.rendSuccess = rendSuccess;
    }

    public UploadedFile getUpFile() {
        return upFile;
    }

    public void setUpFile(UploadedFile upFile) {
        this.upFile = upFile;
    }

    public String getDirImagen() {
        return dirImagen;
    }

    public void setDirImagen(String dirImagen) {
        this.dirImagen = dirImagen;
    }

    public String upload() throws IOException {

        String extension = "";
        dirImagen = "/modulos/colegiatura/archivos/";
        try {
                //validar el tipo de imagen
                if(colImagen.getTimCodigo().getTimCodigo()==1){
                   dirImagen=dirImagen.concat("fotos/");
                }else{
                    if(colImagen.getTimCodigo().getTimCodigo()==2){
                       dirImagen=dirImagen.concat("dniFrente/");
                    }else{
                        if(colImagen.getTimCodigo().getTimCodigo()==3){
                            dirImagen=dirImagen.concat("dniEspalda/");
                        }else{
                            if(colImagen.getTimCodigo().getTimCodigo()==4){
                                dirImagen=dirImagen.concat("tituloFrente/");
                            }else{
                                if(colImagen.getTimCodigo().getTimCodigo()==5){
                                   dirImagen=dirImagen.concat("tituloEspalda/");
                                }else{
                                    if(colImagen.getTimCodigo().getTimCodigo()==6){
                                        dirImagen=dirImagen.concat("resolucion/");
                                    }else{
                                        if(colImagen.getTimCodigo().getTimCodigo()==10){
                                        dirImagen=dirImagen.concat("sello/");
                                        }else{
                                           if(colImagen.getTimCodigo().getTimCodigo()==9){
                                              dirImagen=dirImagen.concat("firma/");
                                             }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                extension = upFile.getName().substring(upFile.getName().length()-4,upFile.getName().length());
                InputStream stream = upFile.getInputStream();

                if(persona.getColegiado().getTipoColegiado().getTcoCodigo()!= 3 ){
                    if(colImagen.getTimCodigo().getTimCodigo() == 10){
                      dirImagen = dirImagen.concat(persona.getPerNroDNI().concat("-").concat(nroSello));
                      dirImagen = dirImagen.concat(extension);
                    }
                    if(colImagen.getTimCodigo().getTimCodigo() != 10){
                      dirImagen = dirImagen.concat(persona.getPerNroDNI());
                      dirImagen = dirImagen.concat(extension);
                    }
                }

                if(persona.getColegiado().getTipoColegiado().getTcoCodigo()== 3){
                    if(colImagen.getTimCodigo().getTimCodigo() == 10){
                      dirImagen = dirImagen.concat(persona.getPerNroPasaporte().concat("-").concat(nroSello));
                      dirImagen = dirImagen.concat(extension);
                    }
                    if(colImagen.getTimCodigo().getTimCodigo() != 10){
                      dirImagen = dirImagen.concat(persona.getPerNroPasaporte());
                      dirImagen = dirImagen.concat(extension);
                    }
                }
                OutputStream out=new FileOutputStream(dirImagen);
                long size = upFile.getSize();
                byte[] buffer = new byte[(int) size];
                stream.read(buffer, 0, (int) size);
                out.write(buffer, 0, (int) size);
                stream.close();
                out.close();
                guardaImagen();
                rendSuccess = true;
                rendFailure = false;
//                setImagen(upFile.getName());
                System.out.println("File Upload Successful.");
                return "ok";

        } catch (Exception ioe) {
            System.out.println("File Upload Unsuccessful.");
            System.out.println("errorrrr" + ioe.toString());
            rendSuccess = false;
            rendFailure = true;
            return "no";
        }
    }

    public String guardaImagen(){
     //almacenamos las imagenes del colegiado
       colImagen.setColCodigo(persona.getColegiado());
       colImagen.setCimRuta(dirImagen);
       colImagen.setCimFechaRegistro(new Date());
       delegadoColImagen.create(colImagen);

       perNatural.setPertieneImagen(true);
       delegadoNatural.edit(perNatural);
       colImagen = new ColegiadoImagen();
       nroSello = "";
//       dirImagen = "D:\\Archivos\\";
       dirImagen = "/modulos/colegiatura/archivos/";
       return null;
    }

    public String ocultarImagen(){

        verImagen = false;
        return null;
    }

    public String mostrarImagen(){
        styloImagen();
        verImagen = true;
        return null;
    }

    public String salir(){

        persona = new PersonaNatural();
        colImagen = new ColegiadoImagen();
        inicializa();
        return "salir";
    }

    public void drawImagen(OutputStream output, Object object) throws IOException{

        try {
             File file = new File(colImagen.getCimRuta());
             FileInputStream inputStream = new FileInputStream(file);
             int tamañoInput = inputStream.available();
             byte[] datos = new byte[tamañoInput];
             inputStream.read(datos, 0, tamañoInput);
             output.write(datos, 0, tamañoInput);

        } catch (Exception e) {

        }
    }
    private String estilo;
    private String alto;
    private String ancho;

    public String getEstilo() {
        return estilo;
    }

    public void setEstilo(String estilo) {
        this.estilo = estilo;
    }

    public String getAlto() {
        return alto;
    }

    public void setAlto(String alto) {
        this.alto = alto;
    }

    public String getAncho() {
        return ancho;
    }

    public void setAncho(String ancho) {
        this.ancho = ancho;
    }


    public String styloImagen(){

        if(colImagen.getTimCodigo().getTimCodigo()== 1){
            estilo = "foto";
            ancho = "400";
            alto = "600";
        }
        if(colImagen.getTimCodigo().getTimCodigo()== 2 || colImagen.getTimCodigo().getTimCodigo()== 3 || colImagen.getTimCodigo().getTimCodigo()== 8){
            estilo = "dni";
            ancho = "500";
            alto = "370";
        }
        if(colImagen.getTimCodigo().getTimCodigo()== 4 || colImagen.getTimCodigo().getTimCodigo()== 5){
            estilo = "titulo";
            ancho = "450";
            alto = "800";
        }
        if(colImagen.getTimCodigo().getTimCodigo()== 6){
            estilo = "resolucion";
            ancho = "450";
            alto = "800";
        }
        if(colImagen.getTimCodigo().getTimCodigo()== 9 || colImagen.getTimCodigo().getTimCodigo()== 10){
            estilo = "firma";
            ancho = "450";
            alto = "200";
        }
        return estilo;
    }

    public String mostrarCV() {
        try {
            File file = new File(colImagen.getCimRuta());
            FacesContext fcontext = FacesContext.getCurrentInstance();
            ExternalContext eContext = fcontext.getExternalContext();
            HttpServletResponse response = (HttpServletResponse) eContext.getResponse();
            response.setHeader("Content-Disposition", "inline; filename=" + file.getName());
            response.setHeader("Cache-Control", "public");
            response.setContentType("application/" + colImagen.getAplication());
            OutputStream os = response.getOutputStream();
            FileInputStream inputStream = new FileInputStream(file);
            int tamanoInput = inputStream.available();
            byte[] datosPDF = new byte[tamanoInput];
            inputStream.read(datosPDF, 0, tamanoInput);
            os.write(datosPDF, 0, tamanoInput);
            os.close();
            fcontext.responseComplete();

        } catch (Exception e) {
            mostrarMensaje("Mensaje: ", "El colegiado no adjunto Curriculum", FacesMessage.SEVERITY_ERROR);
            return "";
        }
        return "";
    }

    public String inicializa(){

        delegadoPreInscripcion = new PreInscripcionDelegate();
        delegadoColegiado = new ColegiadoDelegate();
        delegadoDeporte = new ColegiadoDeporteDelegate();
        delegadoDireccion = new DireccionDelegate();
        delegadoFormacion = new FormacionProfesionalDelegate();
        delegadoTelefono = new TelefonoDelegate();
        delegadoFamiliar = new VinculoColegiadoDelegate();
        delegadoExperiencia = new ExperienciaLaboralDelegate();
        delegadoColESp = new ColegiadoEspecialidadDelegate();
        delegadoEstudioColegiado = new EstudioColegiadoDelegate();
        delegadoProvincia = new ProvinciaDelegate();
        delegadoDpto = new DepartamentoDelegate();
        delegadoEscuela = new EscuelaDelegate();
        delegadoFacultad = new FacultadDelegate();
        delegadoUniversidad = new UniversidadDelegate();
        delegadoJuridico = new PersonaJuridicaDelegate();
        delegadoEspCap = new EspCapDelegate();
        delegadoNatural = new PersonaNaturalDelegate();
        delegadoColImagen = new ColegiadoImagenDelegate();
        delegadoEspecialidad = new EspecialidadDelegate();
        delegadoSolicitante = new solicitanteDelegate();
        delegadoDirectivos = new DirectivosDelegate();
        delegadoDetalleGuia = new DetalleGuiaDelegate();
        delegadoGuiaRemision = new GuiaRemisionDelegate();

        preInscripcion = new Preinscripcion();
        colegiado = new Colegiado();
        colDeporte = new ColegiadoDeporte();
        direccion = new DireccionPersona();
        formProf = new FormacionProfesional();
        telefono = new TelefonoSolicitante();
        familiares = new VinculoColegiado();
        expLaboral = new ExperienciaLaboral();
        colEspecialidad = new ColegiadoEspecialidad();
        estudioColegiado = new EstudioColegiado();
        provEmp = new Provincia();
        provincia = new Provincia();
        dpto = new Departamento();      
        distrito = new Distrito();        
        direccionEmp = new DireccionPersona();
        telefonoEmp = new TelefonoSolicitante();
        perJuridica = new PersonaJuridica();
        espCap = new EspecialidadCapitulo();
        perNatural = new PersonaNatural();
        colImagen = new ColegiadoImagen();
        colFoto = new ColegiadoImagen();
        colFirma = new ColegiadoImagen();

        listaColPorCapitulo = new ArrayList<ColegiadoEspecialidad>();
        listaColPorCapitulo = null;
        
        escuela = new Escuela();
        facultad = new Facultad();
        universidad = new Universidad();

        estadoCivil = null;
        deporte= new Deporte();

        bandera = false;
        capitulo = new Capitulo();

        listaOrdinarios= new ArrayList<Colegiado>();
        listaOrdinarios = null;
        listaPre = new ArrayList<Preinscripcion>();
        listaColPre = new ArrayList<Preinscripcion>();

        guiaPreinscrito = new ArrayList<Preinscripcion>();
        listaPreColegiado = new ArrayList<Colegiado>();
        listaDetalleGuia = new ArrayList<DetalleGuia>();
        detalleGuia = new DetalleGuia();
        guiaRemision = new GuiaRemision();
        listaPersonasFotos = new ArrayList<PersonaNatural>();
        listaPersonasFotos = null;
        listaPersonas = new ArrayList<PersonaNatural>();
        listaPersonas = null;

        mensaje = false;
        activar = false;
        oculto = false;
        listaDirecciones = new ArrayList<DireccionPersona>();
        listaDirecciones = null;
        listaColegiados = new ArrayList<Colegiado>();
        listaColegiados = null;
        listaColegiadosFechas = new ArrayList<Colegiado>();
        direccionCol = new DireccionPersona();
        listaColegiadosVitalicios = new ArrayList<Colegiado>();
        listaColegiadosFallecidos = new ArrayList<Colegiado>();
        listaColegiadosTransferidos = new ArrayList<Colegiado>();
        listaColegiadosTemporales = new ArrayList<Colegiado>();
        listaColegiadosExternos = new ArrayList<Colegiado>();
        listaColegiadosExternos = null;
        listaColegiadoEspecialidad = new ArrayList<ColegiadoEspecialidad>();
        listaColegiadoEspecialidad = null;
        listaSellos = new ArrayList<ColegiadoImagen>();
        listaDocColegiado = new ArrayList<ColegiadoImagen>();
        listaDistritosFiltrados = new ArrayList<Distrito>();
        listaDeportes = null;
        
        dirImagen = "/modulos/colegiatura/archivos/";
//        dirImagen ="D:\\Archivos\\"; // ruta windows
        verImagen = false;
        aprobado = false;
        activo = false;
        d1 = false; d2 = false; d3 = false; d4 = false;
        d5 = false; d6 = false; d7 = false; d8 = false;
        noHallado = false;
        codigoCIP = "";

        return "";
    }

    
    public List<PersonaNatural> listaColegiadoCumpleagneroOrdenCIP(){

        try{
            listaPersonas = new ArrayList<PersonaNatural>();
            listaPersonas = delegadoColegiado.listaColegiadoCumpleagneroOrdenCIP(condicion, mes);
            cantidad = listaPersonas.size();
            habilitado = condicion;
            return listaPersonas;
        }catch(Exception ex){
            return null;
        }
    }
    
    public List<PersonaNatural> listaColegiadoCumpleagneroOrdenApellido(){

        try{
            listaPersonas = new ArrayList<PersonaNatural>();
            listaPersonas = delegadoColegiado.listaColegiadoDeCumpleagnosOrdenApellido(condicion, mes);
            cantidad = listaPersonas.size();
            habilitado = condicion;
            return listaPersonas;
        }catch(Exception ex){
            return null;
        }
    }
    
    public List<PersonaNatural> listaColegiadoCumpleagneroOrdenNacimiento(){

        try{
            listaPersonas = new ArrayList<PersonaNatural>();
            listaPersonas = delegadoColegiado.listaColegiadoDeCumpleagnosOrdenNacimiento(condicion, mes);
            cantidad = listaPersonas.size();
            habilitado = condicion;
            return listaPersonas;
        }catch(Exception ex){
            return null;
        }
    }


    public String listaColegiadoDeCumpleagnos(){

        try{
            if(seleccion == null){
                seleccion = 1;
            }           
            switch(seleccion){

                case 1 : listaColegiadoCumpleagneroOrdenCIP();                       
                         break;
                case 2 : listaColegiadoCumpleagneroOrdenApellido();
                         break;
                case 3 : listaColegiadoCumpleagneroOrdenNacimiento();
                         break;
            }
         return null;
        }catch(Exception ex){
            return null;
        }

    }

    public List<Distrito> listaDistritoFiltrado(){

        return listaDistritosFiltrados;
    }

    public String agregarFiltroDistrito(){

        try{
            listaDistritosFiltrados.add(distrito);
            listaDistritoFiltrado();
            return null;
        }catch(Exception ex){
            return null;
        }
    }

    public String removerFiltro(){

        listaDistritosFiltrados.remove(distrito);        
        listaDistritoFiltrado();
        return null;
    }

    public List<DireccionPersona> listaPorDistritosOrdenCIP(){

        try{
            listaDirecciones = new ArrayList<DireccionPersona>();
            listaDirecciones = delegadoColegiado.listaColegiadosPorDistrito(listaDistritosFiltrados,condicion);
            cantidad = listaDirecciones.size();
            muestra = true;
            return listaDirecciones;
        }catch(Exception ex){
            return null;
        }
    }

    public List<DireccionPersona> listaPorDistritosOrdenApellido(){

        try{
            listaDirecciones = new ArrayList<DireccionPersona>();
            listaDirecciones = delegadoColegiado.listaColegiadosPorDistritoOrdenApellido(listaDistritosFiltrados,condicion);
            cantidad = listaDirecciones.size();
            muestra = true;
            return listaDirecciones;
        }catch(Exception ex){
            return null;
        }
    }

    public List<DireccionPersona> listaPorDistritosOrdenNacimiento(){

        try{
            listaDirecciones = new ArrayList<DireccionPersona>();
            listaDirecciones = delegadoColegiado.listaColegiadosPorDistritoOrdenNacimiento(listaDistritosFiltrados,condicion);
            cantidad = listaDirecciones.size();
            muestra = true;
            return listaDirecciones;
        }catch(Exception ex){
            return null;
        }
    }

    public String  listaPorDistritos(){

        if(seleccion == null){
            seleccion = 1;
        }
        switch(seleccion){

            case 1 : listaPorDistritosOrdenCIP();
                     break;
            case 2 : listaPorDistritosOrdenApellido();
                     break;
            case 3 : listaPorDistritosOrdenNacimiento();
                     break;

        }

        return null;
    }

    public String nuevaBusqueda(){

        if(muestra == true){
            muestra = false;
        }else{
            muestra = true;
        }
        listaDirecciones = new ArrayList<DireccionPersona>();
        listaDistritosFiltrados = new ArrayList<Distrito>();
        return null;
    }

    @SuppressWarnings("static-access")
    public String reporteColegiadosOrdinarios() {

        Map parametros = new HashMap();

        List<PersonaNatural> listaColGeneral;
//        listaColGeneral = new ArrayList<PersonaNatural>();
//        listaColGeneral = listaPersonas;

        System.out.println("listaColGeneral : "+listaPersonas.size());
        HttpServletRequest request1 = ControladorAbstracto.getRequest();
        String Imagen = "/imagenColegiatura/logocipcdll.gif";
        String logo = request1.getRealPath(Imagen);
        String cantidad1 = "Nro de Colegiados: "+listaPersonas.size();
        String titulo = "Relación de Colegiados Ordinarios";
        parametros.put("rango", titulo);
        parametros.put("cantidad", cantidad1);
        parametros.put("logo", logo);

        if (listaPersonas.size() > 0) {
            RutaCarpetaReporte ruta = new RutaCarpetaReporte();
            String rutaJasper = "", rutaPDF = "";
            rutaJasper = ruta.getRutaReporte() + "rptColegiadosOrdinarios.jasper";
//            rutaPDF = ruta.getRuta() + "rptColegiadosOrdinarios.pdf";//ruta windows prueba
            rutaPDF = ruta.getRutaPDF() + "rptColegiadosOrdinarios.pdf";//ruta linux prueba
            //logo windows:         C:/Reportes/logocipcdll.gif
            //rutaPDF = ruta.getRutaPDF() + "rptFormato.pdf";   //ruta linux server
            //logo linux:          /root/Desktop/pdf/logocipcdll.gif
            try {
                HttpServletRequest request = ControladorAbstracto.getRequest();
                rutaJasper = request.getRealPath(rutaJasper);
            //rutaPDF = request.getRealPath(rutaPDF);
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }

            try {
                File entrada = new File(rutaJasper);
                JasperPrint print = JasperFillManager.fillReport(new FileInputStream(entrada), parametros, new JRBeanCollectionDataSource(listaPersonas));
                if (ruta.generarPDF(rutaPDF, print)) {
                }
            } catch (Exception e) {
                System.out.println("-------" + e.toString());
            }
        } else {
            mostrarMensaje("Error", "Deben existir datos en la Lista para exportar", FacesMessage.SEVERITY_ERROR);
        }
        return "";

    }

    public String exportarExcelOrdinariosConDireccion(){

        Map parametros = new HashMap();
        reportesController rp = (reportesController) ControladorAbstracto.getBean("reportesController");

        List<PersonaNatural> listaColGeneral;
        listaColGeneral = new ArrayList<PersonaNatural>();
        listaColGeneral = delegadoColegiado.listaOrdinariosConDireccion(listaPersonas);

        String titulo = "Relación de Colegiados Ordinarios";
        String cantidad1 = "Nro de Colegiados : "+listaColGeneral.size();
        parametros.put("cantidad", cantidad1);
        parametros.put("capitulo", titulo);

        HttpServletRequest request1 = ControladorAbstracto.getRequest();
        String Imagen = "/imagenColegiatura/logocipcdll.gif";
        String logo = request1.getRealPath(Imagen);
        parametros.put("logo", logo);

        Reporteador reporteador = new Reporteador();
        reporteador.exportarReporte("rptColegiadosOrdinariosExcel2", FormatoExportacion.excel, listaColGeneral, parametros);
        return null;
    }


}
